併發容器和框架

1、HashMap和Hashtable的區別
HashMap和Hashtable都實現了Map接口,主要的區別有:線程安全性,同步(synchronization),以及速度。HashMap幾乎可以等價於Hashtable,除了HashMap是非synchronized的,並可以接受null(**HashMap可以接受爲null的鍵值(key)**和值(value),而Hashtable則不行)。

HashMap是非synchronized,而Hashtable是synchronized,意味着Hashtable是線程安全的,多個線程可以共享一個Hashtable;而多個線程是不能共享HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的擴展性更好。另一個區別是HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器。HashMap可以通過下面的語句進行同步:Map m = Collections.synchronizeMap(hashMap);
https://www.cnblogs.com/steven520213/p/8192091.html

2、CopyOnWriteArrayList
內部持有一個ReentrantLock lock = new ReentrantLock(),讀寫分離,寫時複製出一個新的數組,完成插入、修改或者移除操作後將新數組賦值給array。
只是在增刪改上加鎖,但是讀不加鎖,CopyOnWriteArrayList支持讀多寫少的併發情況。

3、AtomicInteger、AtomicBolean、AtomicLog 原子更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章