根据我对CopyOnWriteArrayList中更新数据的理解。使用ReentrantLock锁定set方法,将数据复制到局部变量中,将要添加的数据添加到此局部变量中,然后将其更新为整个List数据。在Vector和synchronizedList的set方法的同步版本上执行此操作是否有任何优势
答案 0 :(得分:1)
对
的set方法的同步版本执行此操作是否有任何优势?Clients.Current
和Vector
例如,您不能在一个线程中迭代synchronizedList
并在另一个线程中修改它。你会得到一个synchronizedList
。
ConcurrentModificationException
永远不会发生这种情况,
因为迭代器的基础数据结构从不修改。
Javadoc中的描述清楚地说明了好处和缺点。