第3天 ReentrantLock

ReentrantLock重入鎖肤寝,Lock的具體實(shí)現(xiàn)

public class ReentrantLock implements Lock, java.io.Serializable 

Lock為顯示鎖,synchronized為內(nèi)部鎖。

  • Lock支持更細(xì)粒度的鎖控制
  • Lock是無(wú)阻塞鎖菇篡, synchronized是阻塞鎖
  • Lock可實(shí)現(xiàn)公平鎖, synchronized只能是非公平鎖
  • Lock是代碼級(jí)的赶诊, synchronized是JVM級(jí)的
 /**
 * Linked list node class
 * 節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)笼平,可以發(fā)現(xiàn)為單向鏈表
 */
static class Node<E> {
    E item;

    /**
     * One of:
     * - the real successor Node
     * - this Node, meaning the successor is head.next
     * - null, meaning there is no successor (this is the last node)
     */
    Node<E> next;

    Node(E x) { item = x; }
}
/** Current number of elements
 * 當(dāng)前數(shù)量,使用原子計(jì)數(shù), 保證多線程安全
 * */
private final AtomicInteger count = new AtomicInteger();
/** Lock held by take, poll, etc */
private final ReentrantLock takeLock = new ReentrantLock();

/** Wait queue for waiting takes */
private final Condition notEmpty = takeLock.newCondition();

/** Lock held by put, offer, etc */
private final ReentrantLock putLock = new ReentrantLock();

/** Wait queue for waiting puts */
private final Condition notFull = putLock.newCondition();

通過(guò)重入鎖的方式舔痪,實(shí)現(xiàn)讀寫(xiě)分離鎖寓调。并使用condition保證在滿足特定條件時(shí),線程block锄码。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市滋捶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌重窟,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扭仁,死亡現(xiàn)場(chǎng)離奇詭異厅翔,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)刀闷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)甸昏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人施蜜,你說(shuō)我怎么就攤上這事⌒” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵和泌,是天一觀的道長(zhǎng)武氓。 經(jīng)常有香客問(wèn)我,道長(zhǎng)县恕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任属提,我火速辦了婚禮美尸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘师坎。我一直安慰自己,他們只是感情好胯陋,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布遏乔。 她就那樣靜靜地躺著,像睡著了一般按灶。 火紅的嫁衣襯著肌膚如雪筐咧。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,549評(píng)論 1 312
  • 那天铺罢,我揣著相機(jī)與錄音,去河邊找鬼韭赘。 笑死势就,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的苞冯。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鞭达,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了畴蹭?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤繁扎,失蹤者是張志新(化名)和其女友劉穎芹啥,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體墓怀,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡傀履,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碴犬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡服协,死狀恐怖啦粹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情跳纳,我是刑警寧澤,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布寺庄,位于F島的核電站力崇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏亮靴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一朽合、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧曹步,春花似錦、人聲如沸讲婚。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至白指,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間告嘲,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工橄唬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留参歹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓僧界,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親捎泻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子飒炎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 摘要: 我們已經(jīng)知道郎汪,synchronized 是Java的關(guān)鍵字,是Java的內(nèi)置特性煞赢,在JVM層面實(shí)現(xiàn)了對(duì)臨界...
    kingZXY2009閱讀 1,830評(píng)論 0 20
  • Java并發(fā)總結(jié) 1.多線程的優(yōu)點(diǎn) 資源利用率更好 程序在某些情況下更簡(jiǎn)單 程序響應(yīng)更快 2.創(chuàng)建線程 1.實(shí)現(xiàn)R...
    不會(huì)上樹(shù)的猴子閱讀 1,033評(píng)論 0 5
  • Java-Review-Note——4.多線程 標(biāo)簽: JavaStudy PS:本來(lái)是分開(kāi)三篇的照筑,后來(lái)想想還是整...
    coder_pig閱讀 1,655評(píng)論 2 17
  • 作者: 一字馬胡 轉(zhuǎn)載標(biāo)志 【2017-11-03】 更新日志 前言 在java中瘦陈,鎖是實(shí)現(xiàn)并發(fā)的關(guān)鍵組件晨逝,多個(gè)...
    一字馬胡閱讀 44,165評(píng)論 1 32
  • 白灼的日光下就算孤獨(dú)也不會(huì)害怕懦铺,啞光色薄薄地鋪滿整個(gè)畫(huà)面,黏稠而富有彈性冬念,輕輕地伸伸胳膊兒動(dòng)動(dòng)腿是扯不破的。當(dāng)然急前,...
    我不會(huì)在這里發(fā)東西了閱讀 534評(píng)論 3 2