JDK併發包(面試)

JDK併發包下主要新增了兩個內容,一個是關於線程和鎖的同步控制工具,一個是併發容器。

 面試時問的比較多的是信號量、倒數計數器、ConcurrentHashMap。

(1)信號量(Semaphore)

信號量可以用來限流。Semaphore內部維護了一個計數器,在多線程訪問的情況下,可以限制應用程序每次處理的請求數量。

(2)倒數計數器(CountDownLatch)

倒數計數器可以用來控制主線程的觸發條件。一種應用場景是,多個子線程完成了資源的準備工作後,主線程纔開始啓動,類似於火箭發射;另一種應用場景是,主線程進入休眠等待子線程完成各自的任務,類似於超市所有人員都離開後才能關門。兩種場景看起來很像,但是側重點不同。

(3)ConcurrentHashMap

ConcurrentHashMap是併發場景下的HashMap的最好替代品,對數據進行了分片加鎖處理,類似於分段維修馬路,每個線程每次只會訪問到其中的一段,所以並不會鎖住全部數據。

 

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