什麼是併發容器的實現?

何爲同步容器:能夠簡單地理解爲經過synchronized來實現同步的容器,若是有多個線程調用同步容器的方法,它們將會串行執行。好比Vector,Hashtable,以及Collections.synchronizedSet,synchronizedList等方法返回的容器。 安全

能夠經過查看Vector,Hashtable等這些同步容器的實現代碼,能夠看到這些容器實現線程安全的方式就是將它們的狀態封裝起來,並在須要同步的方法上加上關鍵字synchronized。併發

併發容器使用了與同步容器徹底不一樣的加鎖策略來提供更高的併發性和伸縮性,例如在ConcurrentHashMap中採用了一種粒度更細的加鎖機制,能夠稱爲分段鎖,在這種鎖機制下,容許任意數量的讀線程併發地訪問map,而且執行讀操做的線程和寫操做的線程也能夠併發的訪問map,同時容許必定數量的寫操做線程併發地修改map,因此它能夠在併發環境下實現更高的吞吐量。線程

相關文章
相關標籤/搜索