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+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告