java中的自旋鎖和互斥鎖

多線程中,對共享資源進行訪問喉悴,為了防止并發(fā)引起的相關(guān)問題巫击,通常都是引入鎖的機制來處理并發(fā)問題禀晓。

獲取到資源的線程A對這個資源加鎖,其他線程比如B要訪問這個資源首先要獲得鎖坝锰,而此時A持有這個資源的鎖粹懒,只有等待線程A邏輯執(zhí)行完,釋放鎖顷级,這個時候B才能獲取到資源的鎖進而獲取到該資源凫乖。

這個過程中,A一直持有著資源的鎖,那么沒有獲取到鎖的其他線程比如B怎么辦帽芽?通常就會有兩種方式:

  1. 一種是沒有獲得鎖的進程就直接進入阻塞(BLOCKING)删掀,這種就是互斥鎖

  2. 另外一種就是沒有獲得鎖的進程,不進入阻塞导街,而是一直循環(huán)著披泪,看是否能夠等到A釋放了資源的鎖。

自旋鎖(spin lock)是一種非阻塞鎖搬瑰,也就是說款票,如果某線程需要獲取鎖,但該鎖已經(jīng)被其他線程占用時跌捆,該線程不會被掛起徽职,而是在不斷的消耗CPU的時間,不停的試圖獲取鎖佩厚。

互斥量(mutex)是阻塞鎖姆钉,當(dāng)某線程無法獲取鎖時,該線程會被直接掛起抄瓦,該線程不再消耗CPU時間潮瓶,當(dāng)其他線程釋放鎖后,操作系統(tǒng)會激活那個被掛起的線程钙姊,讓其投入運行毯辅。

為什么要使用自旋鎖

互斥鎖有一個缺點,他的執(zhí)行流程是這樣的 托管代碼 - 用戶態(tài)代碼 - 內(nèi)核態(tài)代碼煞额、上下文切換開銷與損耗思恐,假如獲取到資源鎖的線程A立馬處理完邏輯釋放掉資源鎖,如果是采取互斥的方式膊毁,那么線程B從沒有獲取鎖到獲取鎖這個過程中胀莹,就要用戶態(tài)和內(nèi)核態(tài)調(diào)度、上下文切換的開銷和損耗婚温。所以就有了自旋鎖的模式描焰,讓線程B就在用戶態(tài)循環(huán)等著,減少消耗栅螟。

自旋鎖比較適用于鎖使用者保持鎖時間比較短的情況荆秦,這種情況下自旋鎖的效率要遠高于互斥鎖。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末力图,一起剝皮案震驚了整個濱河市步绸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搪哪,老刑警劉巖靡努,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坪圾,死亡現(xiàn)場離奇詭異,居然都是意外死亡惑朦,警方通過查閱死者的電腦和手機兽泄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漾月,“玉大人病梢,你說我怎么就攤上這事×褐祝” “怎么了蜓陌?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吩蔑。 經(jīng)常有香客問我钮热,道長,這世上最難降的妖魔是什么烛芬? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任隧期,我火速辦了婚禮,結(jié)果婚禮上赘娄,老公的妹妹穿的比我還像新娘仆潮。我一直安慰自己,他們只是感情好遣臼,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布性置。 她就那樣靜靜地躺著,像睡著了一般揍堰。 火紅的嫁衣襯著肌膚如雪鹏浅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天屏歹,我揣著相機與錄音篡石,去河邊找鬼。 笑死西采,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的继控。 我是一名探鬼主播械馆,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼武通!你這毒婦竟也來了霹崎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤冶忱,失蹤者是張志新(化名)和其女友劉穎尾菇,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡派诬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年劳淆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片默赂。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡沛鸵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缆八,到底是詐尸還是另有隱情曲掰,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布奈辰,位于F島的核電站栏妖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏奖恰。R本人自食惡果不足惜吊趾,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望房官。 院中可真熱鬧趾徽,春花似錦、人聲如沸翰守。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜡峰。三九已至了袁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間湿颅,已是汗流浹背载绿。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留油航,地道東北人崭庸。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像谊囚,于是被迫代替她去往敵國和親怕享。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

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