深入學習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執行緒
- 深入學習golang(2)—channelGolang
- 學習動態效能表(八)-(2)-v$lock
- 深入學習 Redis(2):持久化Redis持久化
- MYSQL METADATA LOCK(MDL LOCK)學習(1) 理論知識和加鎖型別測試MySql型別
- DSI之lock學習
- oracle lock鎖_v$lock_轉Oracle
- MySQL深入研究--學習總結(2)MySql
- LockSupport
- lock鎖和monitor.enter鎖
- 基於v$lock.block及request及dba_waiters或dba_blockers學習lock鎖系列七BloCAI
- java高併發系列 - 第14天:JUC中的LockSupport工具類,必備技能Java
- 【JavaSE】Lock鎖和synchronized鎖的比較,lock鎖的特性,讀寫鎖的實現。Javasynchronized
- Java學習關於隨機數工具類--Random類Java隨機random
- mysql innodb lock鎖之record lock之一MySql
- 深入理解Java併發框架AQS系列(四):共享鎖(Shared Lock)Java框架AQS
- 深入理解Java併發框架AQS系列(三):獨佔鎖(Exclusive Lock)Java框架AQS
- 【Mysql】metadata lock鎖MySql
- MYSQL 鎖:metadata lockMySql
- Java中syncrhoized ,reentrantLock ,Atomic ,Lock ,ThreadLocal ,transient ,volatile,物件鎖和類鎖JavaZedReentrantLockthread物件
- 深入學習js之——類陣列物件與arguments #11JS陣列物件
- InnoDB鎖學習
- Java併發工具類(閉鎖CountDownLatch)JavaCountDownLatch
- [新手提問]如何深入學習Portal JetSpeed-2??
- MySQL 共享鎖 (lock in share mode),排他鎖 (for update)MySql
- 深入學習synchronizedsynchronized
- YYCache深入學習
- 深入學習 vueVue
- React 深入系列2:元件分類React元件
- MySQL入門學習之——innodb lockMySql
- 深入學習Java虛擬機器——類檔案結構Java虛擬機
- 通過dump library cache分析與學習oracle易碎解析鎖v$lock之系列十Oracle