iOS-多線程-死鎖

所謂死鎖撼嗓,是指兩個或兩個以上的線程在執(zhí)行過程中,因爭奪資源(數(shù)據(jù)源欢唾、內(nèi)存等且警,變量不是資源)而造成的一種相互等待的現(xiàn)象,若無外部處理作用礁遣,它們都將無限等待下去斑芜。

四個必備條件:

  • 互斥:所謂互斥就是線程在某一時間內(nèi)獨占資源。如果此時還有其它進程請求資源祟霍,則請求者只能等待杏头,直至占有資源的進程用畢釋放。
  • 請求與保持:指線程已經(jīng)保持至少一個資源沸呐,但又提出了新的資源請求醇王,而該資源已被其它進程占有,此時請求進程阻塞崭添,但又對自己已獲得的其它資源保持不放寓娩。
  • 不剝奪:指線程已獲得的資源,在未使用完之前,不能被剝奪棘伴,只能在使用完時由自己釋放寞埠。
  • 環(huán)路等待:指在發(fā)生死鎖時,必然存在一個線程——資源的環(huán)形鏈焊夸。

開發(fā)中碰到的死鎖:

  1. 在GCD中仁连,主要的死鎖就是當(dāng)前串行隊列里面同步執(zhí)行當(dāng)前串行隊列。解決的方法就是將同步的串行隊列放到另外一個線程執(zhí)行阱穗。
  2. 兩個串行隊列A怖糊、B,其中A是B的目標(biāo)隊列颇象,這樣隊列之間會形成層級體系伍伤,B中的任務(wù)稍候都會在A中一次執(zhí)行,于是排在AB中的任務(wù)都是在A中串行執(zhí)行遣钳,這時如果在隊列B中的塊中扰魂,判斷當(dāng)前隊列不是A那么就認為可以在隊列A上執(zhí)行同步派發(fā)操作,實際上會導(dǎo)致死鎖蕴茴。
    解決方案:隊列特有數(shù)據(jù)劝评。
  3. 互斥鎖在已獲得鎖的情況下再次請求鎖,線程會因為等待鎖的釋放而進入睡眠狀態(tài)倦淀,因此就不可能再釋放鎖蒋畜,從而導(dǎo)致死鎖。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末撞叽,一起剝皮案震驚了整個濱河市姻成,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌愿棋,老刑警劉巖科展,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異糠雨,居然都是意外死亡才睹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門甘邀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琅攘,“玉大人,你說我怎么就攤上這事松邪∥肭伲” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵测摔,是天一觀的道長置济。 經(jīng)常有香客問我,道長锋八,這世上最難降的妖魔是什么浙于? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮挟纱,結(jié)果婚禮上羞酗,老公的妹妹穿的比我還像新娘。我一直安慰自己紊服,他們只是感情好檀轨,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著欺嗤,像睡著了一般参萄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上煎饼,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天讹挎,我揣著相機與錄音,去河邊找鬼吆玖。 笑死筒溃,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沾乘。 我是一名探鬼主播怜奖,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼翅阵!你這毒婦竟也來了歪玲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤掷匠,失蹤者是張志新(化名)和其女友劉穎读慎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體槐雾,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡夭委,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了募强。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片株灸。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖擎值,靈堂內(nèi)的尸體忽然破棺而出慌烧,到底是詐尸還是另有隱情,我是刑警寧澤鸠儿,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布屹蚊,位于F島的核電站厕氨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏汹粤。R本人自食惡果不足惜命斧,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嘱兼。 院中可真熱鬧国葬,春花似錦、人聲如沸芹壕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽踢涌。三九已至通孽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間睁壁,已是汗流浹背利虫。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留堡僻,地道東北人糠惫。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像钉疫,于是被迫代替她去往敵國和親硼讽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

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

  • 從哪說起呢牲阁? 單純講多線程編程真的不知道從哪下嘴固阁。。 不如我直接引用一個最簡單的問題城菊,以這個作為切入點好了 在ma...
    Mr_Baymax閱讀 2,762評論 1 17
  • 基礎(chǔ)知識: 下面是五道面試題备燃,寫出打印結(jié)果(題目從別人那盜的,但是作者寫的看不明白凌唬,用自己語言總結(jié)一下) 第一題:...
    LaurenceZi閱讀 852評論 1 15
  • 前言 iOS開發(fā)中由于各種第三方庫的高度封裝并齐,對鎖的使用很少,剛好之前面試中被問到的關(guān)于并發(fā)編程鎖的問題客税,都是一知...
    喵渣渣閱讀 3,703評論 0 33
  • Java-Review-Note——4.多線程 標(biāo)簽: JavaStudy PS:本來是分開三篇的况褪,后來想想還是整...
    coder_pig閱讀 1,653評論 2 17
  • Object C中創(chuàng)建線程的方法是什么?如果在主線程中執(zhí)行代碼更耻,方法是什么测垛?如果想延時執(zhí)行代碼、方法又是什么秧均? 1...
    AlanGe閱讀 1,740評論 0 17