可重入鎖的幾個核心要素對標AQS

2021-10-07 17:52:01 字數 503 閱讀 9840

在juc包中abstractqueuedsynchronizer經常被稱作佇列同步器(aqs),是juc包內鎖的實現關鍵,那要實現乙個可重入鎖需要幾個核心要素

需要乙個記錄鎖狀態的變數state,state至少需要兩個值0、1,對state操作要保證安全性,需要使用到cas(自旋)

需要有乙個變數儲存當前是那個執行緒持有鎖

需要乙個列表儲存當前等待鎖的執行緒的列表

需要有乙個可以喚醒和阻塞執行緒的操作

那對標aqs

使用的是locksupport工具類中的lock、pack方法

職業成長的核心要素

道 1 定位 內驅力 內驅力是拉開人與人距離的發動機,也是提公升自我最核心的要素。是否真正的想提公升自己,慾望和野心有多強烈,就會決定自己能成為怎麼樣的人。2 本質 深度思考 要判斷是否正確?就要多問自己幾個問題?比如這件事情有多大的社會價值?是利己還是利他?與我的長遠人生目標是否一致?格局是否達到...

可重入鎖,可中斷鎖,公平鎖的理解

執行緒鎖 1.可重入鎖 表明了鎖的分配機制 synchronized和reentrantlock都是可重入鎖 比如當乙個執行緒執行到synchronized方法method1,而method1方法中呼叫了另乙個synchrogazed方法method2 此時執行緒不需要重新申請一把鎖,可以直接執行m...

ReentrantLock可重入鎖的原理及使用場景

從使用場景的角度出發來介紹對reentrantlock的使用,相對來說容易理解一些。a 忽略重複加鎖。b 用在介面互動時點選執行較長時間請求操作時,防止多次點選導致後台重複執行 忽略重複觸發 以上兩種情況多用於進行非重要任務防止重複執行,如 清除無用臨時檔案,檢查某些資源的可用性,資料備份操作等 i...