有个ArrayList对象里面有许多需要处理的对象,原来的做法是把arraylist.iterator(),
然后while(iterator.hasNext())来处理,但是这样是单线程的,后面的会等待前面做完之后才会被做。现在想启动几个线程,同时来处理ArrayList里面的对象,比如ArrayList10个对象
第一时刻
线程1--取ArrayList里面位置在0的对象--处理
线程2--取ArrayList里面位置在1的对象--处理
线程3--取ArrayList里面位置在3的对象--处理第二时刻,线程工作坐完后去取下一个对象:
线程2--取ArrayList里面位置在4的对象--处理
线程1--取ArrayList里面位置在5的对象--处理
线程3--取ArrayList里面位置在6的对象--处理请问各位怎么弄啊?

解决方案 »

  1.   

    List l = Collections.Synchronized(new ArrayList);可以么?
      

  2.   

    List l = new ArrayList();Synchronized{//将代码块同步
    线程处理代码
    for(string i:l){
    this.delete(i);//取出对象i,删除这个元素,
    //l.remove(i);
    this.process(i)//处理方法,不用同步
    }
    }
      

  3.   

    可以用线程安全的集合类,如vector就是线程安全的阿