在不使用Collections.synchronizedList()
的情况下,使arraylist同步的其他方法是什么?
答案 0 :(得分:3)
方法Collection.synchronizedList()
只是通过同步在一个互斥锁上从客户端类访问的所有方法来包装现有的List
。
无论如何,如果你想模仿这种行为,最简单的方法就是完全相同。但我没有注意到这一点。
答案 1 :(得分:1)
我希望有两种方法,
将arraylist扩展到您自己的类并覆盖每个方法使其线程安全以启用同步
用户CopyOnWriteArrayList,它是arraylist的另一个线程安全版本。
答案 2 :(得分:1)
考虑使用CopyOnWriteArrayList
或来自java.util.concurrent
的其他并发馆藏。另外,Vector
本质上是同步ArrayList
,但这也意味着它与ArrayList
包裹的Collection.synchronizedList()
基本相同。
如果您希望我们帮助您选择合适的收藏品,请详细说明您的任务。
答案 3 :(得分:0)
ConcurrentLinkedQueue不是List
,但在访问其元素时是线程安全的。