多線程之鎖

其實常用也就那么幾個鎖,總感覺線程所用的鎖機制和數(shù)據(jù)庫的很相似,什么讀寫鎖,就和數(shù)據(jù)庫的共享鎖,排他鎖沒什么區(qū)別.甚至有的文章連名字都一樣,因為他們表達的含義是完全一樣,而且多說一句,mysql數(shù)據(jù)庫的鎖名字真他媽亂.下次好好分析一下.

下面看看線程的鎖

1.可重入鎖(重要)

這其實是一種屬性(可重入性),在線程中只要符合可重入性的鎖,都可被稱為可重入鎖.

可重入鎖是一個什么概念呢?

就是一個線程在執(zhí)行一個,比如被 synchronized 修飾的方法,這時他獲得了這個方法的鎖了,但是這個方法里面調(diào)用了另外一個被synchronized 修飾的方法,他可以直接獲取第二個方法的鎖,而無需等待.

這樣做好處是,預(yù)防死鎖,比如說,一個線程獲取了第一個方法的鎖,他還想獲取第二個方法的鎖,但需要申請,他有可能會永遠卡在這(萬一第二個被占用了呢),所以他會直接進入第二個方法,不需要獲取鎖,如果能滿足這一點他就是可重入鎖.常用的synchronized 和ReentrantLock(就是lock)都是可重入鎖.

但是,你發(fā)現(xiàn)了一個問題沒有,因為第二個方法的鎖不需要申請,所以如果有全局變量,就很有可能會出錯,所以滿足以下幾點很重要.

2.可中斷鎖

就是那種等待鎖的過程中,等半可以嫌時間太長不等的鎖

3.公平鎖

看下面總結(jié)來說就是少用synchronized 多用lock鎖(哈哈)

4.讀寫鎖(重要)

沒有感覺這和數(shù)據(jù)庫的鎖簡直一模一樣嗎,關(guān)鍵點就是只要有寫,就不行,就只能一個線程來操作.

讀寫互斥害怕出現(xiàn)臟讀(哈哈),線程中沒有臟讀這個概念哈(我不知道),我知道這是數(shù)據(jù)庫的概念

就是有寫的就不能共存,其實也很好理解.

下面看看示例

在下面試驗證過程,看看讀寫鎖的過程,可以看看

五.樂觀鎖與悲觀鎖

同樣這也都是一種概念哈,符合這個概念的就是樂觀鎖與悲觀鎖了


說的簡單點

悲觀鎖隨時加鎖,有一個線程調(diào)用鎖之后,其他線程就必須等待了.安全性很高,但效率肯定就不好了.

樂觀鎖:我覺得啊既然無法解決臟讀,那就肯定是可以隨時獲取鎖了.

而且啊,這些往往都要和數(shù)據(jù)庫來一起實現(xiàn),使用數(shù)據(jù)庫的機制來具體實現(xiàn)這些鎖機制.因為按他的說法如果不在數(shù)據(jù)庫進行處理,那么即使在系統(tǒng)中進行了鎖處理也不能很好的實現(xiàn).

而且剛好找到了數(shù)據(jù)庫的鎖的一些概念,剛好來看看

鄙人感覺這些鎖的概念和數(shù)據(jù)庫的鎖的概念幾乎是一樣的,只是應(yīng)該數(shù)據(jù)庫的鎖更為強力一點(也有可能是因為數(shù)據(jù)庫是最后一道防線了),反正所以在實現(xiàn)樂觀悲觀鎖的具體實現(xiàn)中用到了大量數(shù)據(jù)庫的機制.

總之和數(shù)據(jù)庫很相似,我知道的線程常用的鎖也就這么多了,下次再好好整理整理數(shù)據(jù)庫的鎖機制,好好對比一下.

其實感覺很多具體實現(xiàn)原理還都是不太懂,先把這些基礎(chǔ)搞好吧.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姜盈,一起剝皮案震驚了整個濱河市恨狈,隨后出現(xiàn)的幾起案子症见,更是在濱河造成了極大的恐慌精盅,老刑警劉巖俱萍,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件库菲,死亡現(xiàn)場離奇詭異琐鲁,居然都是意外死亡,警方通過查閱死者的電腦和手機惭每,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門骨饿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人台腥,你說我怎么就攤上這事宏赘。” “怎么了览爵?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵置鼻,是天一觀的道長。 經(jīng)常有香客問我蜓竹,道長,這世上最難降的妖魔是什么储藐? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任俱济,我火速辦了婚禮,結(jié)果婚禮上钙勃,老公的妹妹穿的比我還像新娘蛛碌。我一直安慰自己,他們只是感情好辖源,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布蔚携。 她就那樣靜靜地躺著,像睡著了一般克饶。 火紅的嫁衣襯著肌膚如雪酝蜒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天矾湃,我揣著相機與錄音亡脑,去河邊找鬼。 笑死邀跃,一個胖子當(dāng)著我的面吹牛霉咨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拍屑,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼途戒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了僵驰?” 一聲冷哼從身側(cè)響起喷斋,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤裁蚁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后继准,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體枉证,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年移必,在試婚紗的時候發(fā)現(xiàn)自己被綠了室谚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡崔泵,死狀恐怖秒赤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情憎瘸,我是刑警寧澤入篮,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站幌甘,受9級特大地震影響潮售,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锅风,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一酥诽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧皱埠,春花似錦肮帐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至忘巧,卻和暖如春恒界,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背袋坑。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工仗处, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人枣宫。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓婆誓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親也颤。 傳聞我的和親對象是個殘疾皇子洋幻,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

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

  • 并發(fā)編程中最常出現(xiàn)的情形就是多個線程共享一個資源,這些共享的資源很可能導(dǎo)致錯誤或者數(shù)據(jù)不一致的情形翅娶,需要想辦法來解...
    Real_man閱讀 317評論 2 0
  • 在開發(fā)Java多線程應(yīng)用程序中文留,各個線程之間由于要共享資源好唯,必須用到鎖機制。Java提供了多種多線程鎖機制的實現(xiàn)方...
    千淘萬漉閱讀 6,892評論 1 33
  • 1.解決信號量丟失和假喚醒 public class MyWaitNotify3{ MonitorObject m...
    Q羅閱讀 873評論 0 1
  • 又一次感到深深地挫敗感燥翅,婚姻的本質(zhì)是什么骑篙?十幾年的婚姻生活,除了失望還是失望森书,內(nèi)心的不平衡感一次又一次地出現(xiàn)靶端,就如...
    靜冰雨閱讀 89評論 0 0
  • Docker阿里鏡像加速器 受限于國內(nèi)的網(wǎng)絡(luò)情況,在pull官方鏡像的時候速度總是很慢凛膏,所以需要配置個阿里的鏡像加...
    宇行信閱讀 9,732評論 0 3