java 多线程添加数据

zyf7003 2014-10-22 09:47:27
多个线程同时向一个集合(List)中添加数据(只要求数据添加,不要求添加顺序),是否会造成数据丢失?是否需要使用并发集合?求大神指点!!!
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
h576497619m 2014-10-22
  • 打赏
  • 举报
回复
来自API: 注意,此实现不是同步的。如果多个线程同时访问一个 ArrayList 实例,而其中至少一个线程从结构上修改了列表,那么它必须 保持外部同步。(结构上的修改是指任何添加或删除一个或多个元素的操作,或者显式调整底层数组的大小;仅仅设置元素的值不是结构上的修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方法将该列表“包装”起来。 猜想如果不同步可能会导致ArrayList访问出错,所以要么用Vector,要么加同步锁 list加元素很快,及时加锁关系也不大。
-天宇 2014-10-22
  • 打赏
  • 举报
回复
看你的集合本身是否支持同步,不支持就要自己实现
ghostkngiht 2014-10-22
  • 打赏
  • 举报
回复
List<String> list = Collections.synchronizedList(new ArrayList<String>());
zyf7003 2014-10-22
  • 打赏
  • 举报
回复
求大神!!!

62,615

社区成员

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

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