社区
Java SE
帖子详情
JAVA中ArrayList是否允许两个线程同时进行插入和删除操作?
younerest
2011-08-09 12:06:51
RT
...全文
192
5
打赏
收藏
JAVA中ArrayList是否允许两个线程同时进行插入和删除操作?
RT
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qybao
2011-08-09
打赏
举报
回复
[Quote=引用 4 楼 younerest 的回复:]
引用 2 楼 qybao 的回复:
允许,不过因为不是同步,所以同时删除可能会出错,即某个线程删完了,另一个线程再删可能会抛出越界异常
thanks 也就是所加入线程A往ArrayList中add,线程B删除ArrayList中的一个元素removeAt(),两个线程同时进行应该是没问题的吧
[/Quote]
最好两个线程协调,当ArrayList没有元素的时候,可以让B等待,否则B继续删除的话,可能就出错了。
younerest
2011-08-09
打赏
举报
回复
[Quote=引用 2 楼 qybao 的回复:]
允许,不过因为不是同步,所以同时删除可能会出错,即某个线程删完了,另一个线程再删可能会抛出越界异常
[/Quote]
thanks 也就是所加入线程A往ArrayList中add,线程B删除ArrayList中的一个元素removeAt(),两个线程同时进行应该是没问题的吧
TKD03072010
2011-08-09
打赏
举报
回复
[Quote=引用 2 楼 qybao 的回复:]
允许,不过因为不是同步,所以同时删除可能会出错,即某个线程删完了,另一个线程再删可能会抛出越界异常
[/Quote]
所以建议不要多个线程一起操作 容易出问题
qybao
2011-08-09
打赏
举报
回复
允许,不过因为不是同步,所以同时删除可能会出错,即某个线程删完了,另一个线程再删可能会抛出越界异常
zl3450341
2011-08-09
打赏
举报
回复
ArrayList是线程非安全的。。。所以当然允许
think in
java
线程
和容器2
所以在写程序时最好把
插入
和取数据的
操作
放在
两个
方法
中
来实现。为了遍历,
JAVA
定义了迭代器Iterator,它只能向后遍历,它有一个子类ListIterator,它只适用于List类的访问,它还可以双向移动。
java
并发包&
线程
池原理分析&锁的深度化
2.Vector与
ArrayList
一样,也是通过数组实现的,不同的是它支持
线程
的同步,即某一时刻只有一个
线程
能够写Vector,避免多
线程
同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问
ArrayList
慢 ...
关于
Java
中
ArrayList
线程
不安全的思考
对于个人而言,应用最为频繁的要数
ArrayList
,然而在偶然的一次机会接触到了一个这样的问题:
ArrayList
是否
线程
安全,如果不安全要怎么让它
线程
安全? 这个问题让我一整晚都百思不得其解,遂翻阅源码,啃之。 ...
面试官问 :
ArrayList
不是
线程
安全的,为什么 ?(看完这篇,以后反问面试官)
面试官问 :
ArrayList
不是
线程
安全的,为什么 ????
Java
中
ArrayList
和LinkedList区别
ArrayList
和Vector内部是使用可増长数组实现的,可以认为
ArrayList
或者Vector封装了对内部数组的
操作
,比如向数组
中
添加、
删除
、
插入
新的元素或者数据的扩展和重定向。所以使用get和set方法是花费常数时间的,但是...
Java SE
62,612
社区成员
307,332
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章