首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JAVA中ArrayList是不是允许两个线程同时进行插入和删除操作

2011-12-04 
JAVA中ArrayList是否允许两个线程同时进行插入和删除操作?RT[解决办法]允许,不过因为不是同步,所以同时删

JAVA中ArrayList是否允许两个线程同时进行插入和删除操作?
RT

[解决办法]
允许,不过因为不是同步,所以同时删除可能会出错,即某个线程删完了,另一个线程再删可能会抛出越界异常
[解决办法]
不可以的,无论更新或者查询同时操作都有可能出问题或者异常结果,建议用vector或者List list = Collections.synchronizedList(new ArrayList(...));

[解决办法]
Vector的好处在于可以是线程安全的,像ArrayList,我们添加一个元素时,先要把下标加1,然后再赋值,所以如果有多个线程同时向一个ArrayList里面添加东西时,由于不是线程安全的所以就有可能出错。我们这时要用ArrayList的话,必须保证ArrayList的add操作必须是线程安全的,要放在synchronized 中,,,,
[解决办法]
可以使用 CopyOnWriteArrayList

热点排行