首页
/
每日頭條
/
生活
/
死鎖真的存在嗎
死鎖真的存在嗎
更新时间:2026-06-10 15:09:35

《“死鎖”四個必要條件的合理解釋》分為三個部分:

【1】“死鎖”的含義

【2】“死鎖”的原因及四個必要條件的合理解釋

【3】“死鎖”的預防和解除

死鎖真的存在嗎(揭秘死鎖)1

1.“死鎖”的含義

所謂死鎖:是指兩個或兩個以上的進程在執行過程中,由于競争資源或者由于彼此通信而造成的一種阻塞的現象,若無外力作用,它們都将無法推進下去。此時稱系統處于死鎖狀态或系統産生了死鎖,這些永遠在互相等待的進程稱為死鎖進程。

2.“死鎖”産生的原因以及四個必要條件的合理解釋

産生死鎖的原因可歸結為如下兩點:

(1)競争資源。當系統中供多個進程共享的資源如打印機、公用隊列等,其數目不足以滿足進程的需要時,會引起諸進程的競争而産生死鎖。

(2)進程間推進順序非法。進程在運行過程中,請求和釋放資源的順序不當,也同樣會導緻産生進程死鎖。


産生死鎖的四個必要條件:

1.互斥(Mutual exclusion):存在這樣一種資源,它在某個時刻隻能被分配給一個執行緒(也稱為線程)使用;

2.持有(Hold and wait):當請求的資源已被占用從而導緻執行緒阻塞時,資源占用者不但無需釋放該資源,而且還可以繼續請求更多資源;

3.不可剝奪(No preemption):執行緒獲得到的互斥資源不可被強行剝奪,換句話說,隻有資源占用者自己才能釋放資源;

4.環形等待(Circular wait):若幹執行緒以不同的次序獲取互斥資源,從而形成環形等待的局面,想象在由多個執行緒組成的環形鍊中,每個執行緒都在等待下一個執行緒釋放它持有的資源。


發現到目前為止,所有的内容都可以在課本書籍、百度、論壇、博客上找到,似乎是教條的羅列。

我們發現看過多次,但每每需要的時候(開發、筆試、面試)卻總要回頭再看~難以擺脫遺忘、記憶的循環~我覺得産生這種現象的原因是因為:停留在機械記憶。

因為我們的教科書、論壇、博客的内容十有八九在羅列這些概念~但很少有進一步解釋、闡釋其存在的必然(四個必然條件為什麼不多一個,又為什麼不少一個?)及其内在邏輯。

或許下面的闡釋能讓你再遇到這個問題時,可以不翻教科書,不上網百度就能侃侃而談~

<1>.“死鎖”産生有幾個必要條件?

“死鎖”中“死”音通“四”是四個條件。(雖然很牽強,但對于識記,你會發現很有用!)

<2>.“四”鎖的必要條件都是指哪些?


1.資源互斥性(資源的屬性,不會同時屬于/分配給多個進程)->2.持有和等待(進程被分配(持有)資源後而且在等待(申請)其他資源)->3不可剝奪(對于已分配的資源,不可再強制收回來)->4.環形等待(進程之間資源等待形成相互依賴,互不禮讓)

用再通俗的話,進一步解釋這個逐漸升級的狀況。1->2->3->4是資源分配逐漸條件遞進、加強、升級的過程:資源是互斥的每次屬于一個進程(1.互斥);

資源分配了我占着而且我還要申請其他資源(2.持有和等待);

我占着的資源你沒法拿,你占着的資源我沒法拿(3.不可剝奪);

我申請的資源在你那,你申請的資源在我這(4.循環等待),最終形成了一個相互占有、相互等待的僵持局面~

3.“死鎖”的預防和解除

理解了死鎖的原因,尤其是産生死鎖的四個必要條件,就可以最大可能地避免、預防和解除死鎖,消除産生死鎖的四個必要條件中的任何一個都可以預防和解除死鎖。

不難看出,在死鎖的四個必要條件中,第二、三和四項條件比較容易消除。

1、靜态分配:采用資源靜态分配策略(進程資源靜态分配方式是指一個進程在建立時就分配了它需要的全部資源),破壞"部分分配"條件;

2、可剝奪:允許進程剝奪使用其他進程占有的資源,從而破壞"不可剝奪"條件;

3、有序分配:采用資源有序分配法,破壞"環路"條件。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
食鹽能去漬?食鹽清潔污漬的妙用
食鹽能去漬?食鹽清潔污漬的妙用
鹽是日常生活中大家都離不開的用品,除了能食用之外,鹽還有很多的用處,清潔污漬隻是鹽的一個小妙用。今天就和小編一起來看看在居家清潔方面,用吧,相信在日常生活中是可以經常用的生活小妙招。食鹽能去漬?食鹽清潔污漬的妙用食鹽的去漬小妙招:一、去除黴斑衣服或是毛巾上沾染污漬可以将食鹽和檸檬做成糊狀,之後擦在黴...
2026-06-10
蛋殼不要再扔掉了,它還可以這麼用!
蛋殼不要再扔掉了,它還可以這麼用!
對于雞蛋可以說是人盡皆知,那麼當然了對于雞蛋殼的話,大家肯定也不陌生了。不過對于雞蛋殼很多人都隻是把它當作垃圾也處理的,對于雞蛋殼的用處倒是很少人會去注意了,其實呢,雞蛋不僅是很有營養的美味的食物,它的雞蛋殼也是寶哦,也是有着很多的用處,我們來看看雞蛋殼的作用有哪些呢。蛋殼不要再扔掉了,它還可以這麼...
2026-06-10
雨季如何給衣物防潮
雨季如何給衣物防潮
雨季如何給衣物防潮1、棉、麻服裝:存放時,衣服須洗淨、曬幹、折平,衣櫥、櫃箱、聚乙烯包裝袋都要保持清潔幹淨和幹燥,防止黴變。白色服裝與深色服裝存入時最好分開,防止沾色或泛黃。2、絲綢服裝:收藏時,為防潮防塵,要在服裝面上蓋一層棉布或把絲綢服裝包好。白色服裝不能放在樟木箱内,也不能放樟腦丸,否則易泛黃...
2026-06-10
茶葉能美容?揭秘茶葉的多種妙用
茶葉能美容?揭秘茶葉的多種妙用
每次将喝剩的茶渣攤在木闆上曬幹,積累下來,可以制作一個枕頭芯。因茶性屬涼,故茶葉枕可以清神醒腦,增進思維能力。還可以伴着陣陣清香入睡。茶葉能美容?揭秘茶葉的多種妙用茶葉有哪些妙用?茶本身就富含多種元素,而且因其奇妙的口感而受到大多數人喜愛。那你知道喝剩茶葉的妙用有哪些嗎?下面就告訴你茶葉的妙用,将剩...
2026-06-10
十種常見美齒的食物 助你擁有一口健康牙齒
十種常見美齒的食物 助你擁有一口健康牙齒
擁有一口潔白健康的牙齒,笑起來也顯得特别迷人。要照顧好牙齒,除了勤刷牙、用牙線、定期光顧牙醫,還能怎麼做?愈來愈多研究發現,吃什麼食物也可能大大影響你的燦爛笑容。因為一些天然食物裡的成分,可以對抗造成蛀牙的口腔細菌、強化牙齒琺琅質,還能消除惱人的壞口氣,讓你更自信地展露笑顔。十種常見美齒的食物助你擁...
2026-06-10
Copyright 2023-2026 - www.tftnews.com All Rights Reserved