Java併發:多執行緒和java.util.concurrent併發包總結
阿新 • • 發佈:2019-02-14
引言
前面已經針對Java多執行緒框架中具體的點介紹了很多了,現在是需要一個概括性總結的時候了,正好從網上找到一張描述java.util.concurrent包組成結構的類圖,正好可以對java多執行緒中併發這塊有一個概覽性總結。
在轉載別人的圖之前先簡要總結一下:
一、描述執行緒的類:Runable和Thread都屬於java.lang包
二、內建鎖synchronized屬於jvm關鍵字,內建條件佇列操作介面Object.wait()/notify()/notifyAll()屬於java.lang包
二、提供記憶體可見性和防止指令重排的volatile屬於jvm關鍵字
四、而java.util.concurrent包(J.U.C)中包含的是java併發程式設計中有用的一些工具類,包括幾個部分:
1、locks部分:包含在java.util.concurrent.locks包中,提供顯式鎖(互斥鎖和速寫鎖)相關功能;
2、atomic部分:包含在java.util.concurrent.atomic包中,提供原子變數類相關的功能,是構建非阻塞演算法的基礎;
3、executor部分:散落在java.util.concurrent包中,提供執行緒池相關的功能;
4、collections部分:散落在java.util.concurrent包中,提供併發容器相關功能;
5、tools部分:散落在java.util.concurrent包中,提供同步工具類,如訊號量、閉鎖、柵欄等功能;
再次感謝畫這張圖的作者。