不使用Collections.synchronizedList()使arraylist方法同步

时间:2015-07-29 17:25:11

标签: java collections

在不使用Collections.synchronizedList()的情况下,使arraylist同步的其他方法是什么?

4 个答案:

答案 0 :(得分:3)

方法Collection.synchronizedList()只是通过同步在一个互斥锁上从客户端类访问的所有方法来包装现有的List

无论如何,如果你想模仿这种行为,最简单的方法就是完全相同。但我没有注意到这一点。

答案 1 :(得分:1)

我希望有两种方法,

  1. 将arraylist扩展到您自己的类并覆盖每个方法使其线程安全以启用同步

  2. 用户CopyOnWriteArrayList,它是arraylist的另一个线程安全版本。

答案 2 :(得分:1)

考虑使用CopyOnWriteArrayList或来自java.util.concurrent的其他并发馆藏。另外,Vector本质上是同步ArrayList,但这也意味着它与ArrayList包裹的Collection.synchronizedList()基本相同。

如果您希望我们帮助您选择合适的收藏品,请详细说明您的任务。

答案 3 :(得分:0)

ConcurrentLinkedQueue不是List,但在访问其元素时是线程安全的。