我的应用是找一个容器在多线程环境中使用,一个线程不定时修改容器中的元素,另一个线程浏览容器中的元素.下面只是一个特殊时刻的例子
我用的容器vector是线程安全的,但是有时会出现ConcurrentModificationException异常.不知道为什么?如果我这样应用有问题,
怎样解决?
主要代码如下:
Test类:
//测试iterator等的快速失败
    public void testIterator()
    {
     TestIteratorThread testIteratorThread=new TestIteratorThread();
     List al=Collections.synchronizedList(new ArrayList());
     testIteratorThread.setArr(al);
     al.add("1");
     al.add("2");
     al.add("3");
     testIteratorThread.start();
     for(Iterator iter=al.iterator();iter.hasNext();)
     {
     String value=(String )iter.next();
     if(value.equals("1"))
     {
     iter.remove();
     break;
     }
     }
al.add("4");

    }TestIteratorThread 类:
public class TestIteratorThread extends Thread {
private List arr;
public void run()
    {
while(true)
{
for(Iterator iter=arr.iterator();iter.hasNext();)
     {
     String value=(String )iter.next();
     System.out.println(value);
     }
try {
sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
    }