Java中的并发集合和同步集合之间的区别?

时间:2019-06-26 15:14:40

标签: java multithreading collections concurrency synchronized

在Java中有

1)并发集合(例如java.util.concurrent.CopyOnWriteArrayList

2)同步的集合(例如Collections.synchronizedList(List<T> list)

到目前为止,我的见解:

  • 这两种类型在调用其操作方面都是线程安全的(add()get()等)
  • 但是:如果从类型2的Collection进行迭代,则根本不是线程安全的(比较this answer)。而对于类型1的Collection进行迭代则是线程安全的。

还有其他区别吗?为什么Java会同时使用两种类型的集合?只有一种类型会更清晰吗?

感谢您的帮助

0 个答案:

没有答案