我想创建一个将在Threads之间共享的数组。这意味着数组应该具有被每个线程修改的能力以及通过检查其中的值来使用。我能找到的唯一解决方案是创建一个synchronizedList。
是否可以创建/创建数组,可以是(同步/线程安全/'集中式),换句话说,在Java中的线程之间共享?
谢谢!
答案 0 :(得分:0)
同步列表不会有帮助,因为您将能够遍历当前正在更改的列表,即查看列表的未发布状态。
请检查CopyOnWriteArrayList它允许您以原子方式更改列表,并在每次迭代/搜索时获取有效的列表快照。缺点是在每次CopyOnWriteArrayList修改时都会复制基础数组。