Java 中同步 ArrayList 和 CopyOnWriteArrayList 的区别


Synchronized ArrayList 和 CopyOnWriteArrayList 用于同步 ArrayList。在多线程环境中,这对于确保线程安全是必要的。

Synchronized ArrayList 和 CopyOnWriteArrayList 之间的区别如下:

Synchronized ArrayListCopyOnWriteArrayList
Synchronized ArrayList 用于同步 ArrayList。CopyOnWriteArrayList 用于同步 ArrayList。
Java 1.2 版本首次引入了 Synchronized ArrayList。Java 1.5 版本首次引入了 CopyOnWriteArrayList。
当 ArrayList 中的写入操作多于读取操作时,应使用 Synchronized ArrayList。当 ArrayList 中的读取操作多于写入操作时,应使用 CopyOnWriteArrayList。
此迭代器是快速失败迭代器。此迭代器是安全失败迭代器。
同步块应包含列表的迭代。列表的迭代可以在同步块之外。
在读取或写入操作期间,Synchronized ArrayList 会锁定整个 ArrayList 以确保线程安全。仅在写入操作期间,CopyOnWriteArrayList 会锁定整个 ArrayList 以确保线程安全。
当 ArrayList 较大时,应使用 Synchronized ArrayList。当 ArrayList 较小时,应使用 CopyOnWriteArrayList。

更新于:2019-07-30

1K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告