1. 程式人生 > >Java併發:多執行緒和java.util.concurrent併發包總結

Java併發:多執行緒和java.util.concurrent併發包總結

引言

前面已經針對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包中,提供同步工具類,如訊號量、閉鎖、柵欄等功能;


再次感謝畫這張圖的作者。