千鋒教育2023版Java面試寶典Java面試200題(含美團(tuán)、字節(jié)、阿里大廠真
2023-07-18 21:38 作者:52512803028_bili | 我要投稿

死鎖產(chǎn)生的原因
那么為什么會(huì)產(chǎn)生死鎖呢?主要是由以下四個(gè)條件造成的:
(1)互斥條件:系統(tǒng)要求對(duì)所分配的資源進(jìn)行排他性控制,即在一段時(shí)間內(nèi)某個(gè)資源僅為-個(gè)進(jìn)程所占有(比如:打印機(jī),同一時(shí)間只能一一個(gè)人打印)。此時(shí)若有其他進(jìn)程請(qǐng)求該資源,則請(qǐng)求只能等待,直到有資源釋放了位置;
(2)請(qǐng)求和保持條件:進(jìn)程已經(jīng)持有了一個(gè)資源,但是又要訪問一個(gè)新的被其他進(jìn)程占用的資源那么就會(huì)阻塞,并且對(duì)自己占用的一一個(gè)資源保持不放;?I
(3)不剝奪條件:進(jìn)程對(duì)已經(jīng)獲取的資源未使用完之前不能被剝奪,只能使用完之后自己釋放。
(4)環(huán)路等待條件:存在一種進(jìn)程資源的循環(huán)等待鏈,鏈中每一個(gè)進(jìn)程已獲得的資源同時(shí)被鏈中下一個(gè)進(jìn)程所請(qǐng)求。
標(biāo)簽: