JAVA arraylist的线程安全

来源:互联网 发布:sql语句执行顺序limit 编辑:程序博客网 时间:2024/05/21 18:41

iterator 和 for 都不能修改容器的内容

iterator 可以删除容器中的元素,for不能

 

在iterator 和 for 的过程中,不能有其他线程或自己线程通过直接操作容器对象的方法增加删除元素(报错java.util.ConcurrentModificationException)。自己线程增加若要删除元素,可以在iterator 中调用iterator.remove()方法,不会报错。可以对容器中的元素进行修改查询

 

所以为了线程安全,可以对容器使用 clone()方法进行浅复制,也可以使用线程锁。

0 0