深入學習Lock鎖(2)——LockSupport工具類
在同步元件中,當需要阻塞或喚醒一個執行緒的時候,都會使用LockSupport工具類來完成相應 工作。LockSupport定義了一組的公共靜態方法,這些方法提供了最基本的執行緒阻塞和喚醒功能,而LockSupport也成為構建同步元件的基礎工具。
LockSupport定義了一組以park開頭的方法用來阻塞當前執行緒,以及unpark(Thread thread) 方法來喚醒一個被阻塞的執行緒。
- public static void park():阻塞當前執行緒,如果呼叫unpark(Thread thread) 方法解除阻塞或者中斷執行緒該方法才能返回。
- public static void parkNanos( long nanos):在park()方法的基礎上增加了超時返回條件。
- public static void parkUntil(long deadline):阻塞當前執行緒,直到從1970年到deadline毫秒數的某一時刻
- public static void unpark(Thread thread):喚醒處於阻塞狀態的執行緒。
在Java 6中,LockSupport增加了park(Object blocker)、parkNanos(Object blocker,long nanos) 和parkUntil(Object blocker,long deadline)3個方法,用於實現阻塞當前執行緒的功能,其中引數 blocker是用來標識當前執行緒在等待的物件(以下稱為阻塞物件),該物件主要用於問題排查和系統監控。因為當執行緒阻塞(使用synchronized關鍵字)在一個物件上時,通過執行緒dump能夠 檢視到該執行緒的阻塞物件,方便問題定位,而Java 5推出的Lock等併發工具時卻遺漏了這一 點,致使線上程dump時無法提供阻塞物件的資訊。因此,在Java 6中,LockSupport新增了上述3 個含有阻塞物件的park方法,用以替代原有的park方法。
相關文章
- 鎖——Lock、Condition、ReadWriteLock、LockSupport
- 深入學習Lock鎖(1)——佇列同步器佇列
- LockSupport工具
- JUC工具(LockSupport)
- Java併發包原始碼學習系列:掛起與喚醒執行緒LockSupport工具類Java原始碼執行緒
- Java併發程式設計之鎖機制之LockSupport工具Java程式設計
- Java多執行緒學習(六)Lock鎖的使用Java執行緒
- Lock 鎖
- 深入學習 Redis(2):持久化Redis持久化
- 深入理解Java併發框架AQS系列(四):共享鎖(Shared Lock)Java框架AQS
- Lock鎖之重入鎖與讀寫鎖
- 【JavaSE】Lock鎖和synchronized鎖的比較,lock鎖的特性,讀寫鎖的實現。Javasynchronized
- mysql innodb lock鎖之record lock之一MySql
- MySQL深入研究--學習總結(2)MySql
- 深入理解Java併發框架AQS系列(三):獨佔鎖(Exclusive Lock)Java框架AQS
- java高併發系列 - 第14天:JUC中的LockSupport工具類,必備技能Java
- LockSupport
- Lock介面、重入鎖ReentrantLock、讀寫鎖ReentrantReadWriteLockReentrantLock
- MySQL 共享鎖 (lock in share mode),排他鎖 (for update)MySql
- Lock、Synchronized鎖區別解析synchronized
- 帶你理解Lock鎖原理
- Lock鎖相關以及AQSAQS
- 深入學習js之——類陣列物件與arguments #11JS陣列物件
- React 深入系列2:元件分類React元件
- 深入學習Netty(2)——傳統NIO程式設計Netty程式設計
- mysql metadata lock後設資料鎖之鎖狀態lock_status流轉圖MySql
- mysql觀測METADATA LOCK(MDL)鎖MySql
- java的乾兒子鎖LockJava
- ThunderSoft File Lock for Mac檔案鎖Mac
- MySQL-lock(鎖)-v2.0MySql
- TortoiseSvn強制解鎖 break lock
- 深入學習Java虛擬機器——類檔案結構Java虛擬機
- 深入學習 vueVue
- 深入學習SpringMVCSpringMVC
- 深入學習synchronizedsynchronized
- 分散式鎖-Redission-Lock鎖的使用與原理分散式Redis
- Go 學習、Go 進階、Go 實用工具類Go
- Lock的獨佔鎖和共享鎖的比較分析