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

younerest 2011-08-09 12:42:42
RT
...全文
854 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
BadPattern 2011-08-10
  • 打赏
  • 举报
回复
当然不允许了,两个线程同时对ArrayList进行结构修改会导致数据结构有问题。
Mybeautiful 2011-08-10
  • 打赏
  • 举报
回复
允许,但是可能出问题,如楼上各位所说。
cstur4 2011-08-10
  • 打赏
  • 举报
回复
你可以看ArrayList的源码啊 都没有synchronized关键字 所以不行 Vector的方法就都同步了,当然效率也比ArrayList低
qybao 2011-08-09
  • 打赏
  • 举报
回复
允许,不过因为不是同步,所以同时删除可能会出错,即某个线程删完了,另一个线程再删可能会抛出越界异常
qyqyq 2011-08-09
  • 打赏
  • 举报
回复
span.score{
color: #F7A600;
font-style: italic;
font-weight: bold;
font-size: 25px;
}
<span id="rateScore" class="score">支持4楼</span>
qqhw123 2011-08-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 huqifei 的回复:]

建议加锁同步处理,避免多个线程就可以有序的访问list了。
synchronized
[/Quote]

+1
huqifei 2011-08-09
  • 打赏
  • 举报
回复
建议加锁同步处理,避免多个线程就可以有序的访问list了。
synchronized
huntor 2011-08-09
  • 打赏
  • 举报
回复
可以使用 CopyOnWriteArrayList
softroad 2011-08-09
  • 打赏
  • 举报
回复
不同步会异常的。
wenbodong 2011-08-09
  • 打赏
  • 举报
回复
不错,自己实现同步不就得了
grubby4k 2011-08-09
  • 打赏
  • 举报
回复
可以你手工加同步嘛
daijope 2011-08-09
  • 打赏
  • 举报
回复
Vector的好处在于可以是线程安全的,像ArrayList,我们添加一个元素时,先要把下标加1,然后再赋值,所以如果有多个线程同时向一个ArrayList里面添加东西时,由于不是线程安全的所以就有可能出错。我们这时要用ArrayList的话,必须保证ArrayList的add操作必须是线程安全的,要放在synchronized 中,,,,
ilrxx 2011-08-09
  • 打赏
  • 举报
回复
不可以的,无论更新或者查询同时操作都有可能出问题或者异常结果,建议用vector或者List list = Collections.synchronizedList(new ArrayList(...));
peng658890 2011-08-09
  • 打赏
  • 举报
回复
学习中 等待高手回答!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧