Iterator is not thread safe

public class IteratorInMultiThread {
    public static void main(String[] args) {
        List<Integer> list=new ArrayList<>();
        for(int i=0;i<10000;i++){
            list.add(i);
        }

        ExecutorService es = Executors.newFixedThreadPool(5);
        final Iterator<Integer> it = list.iterator();
        while(it.hasNext()){
            es.execute(new Runnable() {
                @Override
                public void run() {
                    System.out.println(it.next());
                }
            });
        }

        es.shutdown();
    }

}

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324425439&siteId=291194637