Java並發工具包提供了哪些並發工具類


通常我們所說的並發包也就是java.util.concurrent,集中了Java並發的各種工具類。

同步結構

  CountDownLatch  允許一個或多個線程等待某些操作完成  CountDownLatch操作的是事件

  CyclicBarrier  一種輔助性的同步結構,允許多個線程等待到大某個屏障  CyclicBarrier側重點是線程

  Semaphore  Java版本的信號量實現

  Phaser  功能與CountDownLatch很接近,允許線程動態的注冊到Phaser上面,而CountDownLatch是不能動態設置的。

      設計初衷是實現多個線程類似步驟、階段場景的協調,線程注冊等待屏障條件出發,進而協調彼此間的行動,具體參考這個例子

線程安全的容器

  ConcurrentHashMap、側重於Map放入或者獲取的速度,而不在乎順序

  ConcurrentSkipListMap、在乎順序,需要對數據進行非常頻繁的修改

  CopyOnWriteArrayList  任何修改操作,如add、set、remove,都會拷貝原數組,修改后替換原來的數組,通過這種防御性的方式,實現另類的線程安全。

  CopyOnWriteArraySet

各種並發隊列的實現:如各種BlockedQueue實現,比較典型的ArrayBlockingQueue、SynchorousQueue或針對特定場景的PriorityBlockingQueue等。

強大的Executor框架:可以創建各種不同類型的線程池,調度任務運行等,絕大部分情況下,不再需要自己從頭實現線程池和任務調度器。

並發包里提供的線程安全Map、List和Set。參考下面類圖

ConcurrentHashMap

ConcurrentSkipListMap

兩個CopyOnWrite容器CopyOnWriteArrayList和CopyOnWriteArraySet

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM