首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >跨线程的Java并发修改

跨线程的Java并发修改
EN

Stack Overflow用户
提问于 2016-12-18 15:33:30
回答 1查看 32关注 0票数 0

我有多个线程不断地迭代一个叫做“ArrayList”的客户端。

当它们断开连接时,我想从列表中删除单个客户端,但我知道这可能会导致并发修改异常。

我应该用Synchronized块将ArrayList的所有用法括起来吗?这不是一个好主意吗?

另外,ArrayList是否可以被多线程读取而没有问题?

谢谢,

(客户端列表由向所有客户端发送数据的UDP线程不断迭代)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-18 15:37:55

我可能没有完整的信息,但似乎你总是读,只是偶尔写(更改)到数组列表。在这种情况下,您可能应该考虑使用:

Copy On Write Array List implementation

它应该比使用常规同步更好,因为您不希望在读取操作时同步。

Here是一篇解释使用CopyOnWriteArrayList解决方案的更多pro和-contra的文章。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41206348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档