請舉例子說明什麼是死鎖怎樣避免死鎖

2021-05-28 14:50:38 字數 1947 閱讀 2024

1樓:匿名使用者

所謂死鎖:是指兩個或兩個以上的程序在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的程序稱為死鎖程序。

由於資源佔用是互斥的,當某個程序提出申請資源後,使得有關程序在無外力協助下,永遠分配不到必需的資源而無法繼續執行,這就產生了一種特殊現象死鎖。

雖然程序在執行過程中,可能發生死鎖,但死鎖的發生也必須具備一定的條件,死鎖的發生必須具備以下四個必要條件。

1)互斥條件:指程序對所分配到的資源進行排它性使用,即在一段時間內某資源只由一個程序佔用。如果此時還有其它程序請求資源,則請求者只能等待,直至佔有資源的程序用畢釋放。

2)請求和保持條件:指程序已經保持至少一個資源,但又提出了新的資源請求,而該資源已被其它程序佔有,此時請求程序阻塞,但又對自己已獲得的其它資源保持不放。

3)不剝奪條件:指程序已獲得的資源,在未使用完之前,不能被剝奪,只能在使用完時由自己釋放。

4)環路等待條件:指在發生死鎖時,必然存在一個程序——資源的環形鏈,即程序集合中的p0正在等待一個p1佔用的資源;p1正在等待p2佔用的資源,……,pn正在等待已被p0佔用的資源。

在系統中已經出現死鎖後,應該及時檢測到死鎖的發生,並採取適當的措施來解除死鎖。目前處理死鎖的方法可歸結為以下四種:

1) 預防死鎖。

這是一種較簡單和直觀的事先預防的方法。方法是通過設定某些限制條件,去破壞產生死鎖的四個必要條件中的一個或者幾個,來預防發生死鎖。預防死鎖是一種較易實現的方法,已被廣泛使用。

但是由於所施加的限制條件往往太嚴格,可能會導致系統資源利用率和系統吞吐量降低。

2) 避免死鎖。

該方法同樣是屬於事先預防的策略,但它並不須事先採取各種限制措施去破壞產生死鎖的的四個必要條件,而是在資源的動態分配過程中,用某種方法去防止系統進入不安全狀態,從而避免發生死鎖。

3)檢測死鎖。

這種方法並不須事先採取任何限制性措施,也不必檢查系統是否已經進入不安全區,此方法允許系統在執行過程中發生死鎖。但可通過系統所設定的檢測機構,及時地檢測出死鎖的發生,並精確地確定與死鎖有關的程序和資源,然後採取適當措施,從系統中將已發生的死鎖清除掉。

4)解除死鎖。

這是與檢測死鎖相配套的一種措施。當檢測到系統中已發生死鎖時,須將程序從死鎖狀態中解脫出來。常用的實施方法是撤銷或掛起一些程序,以便**一些資源,再將這些資源分配給已處於阻塞狀態的程序,使之轉為就緒狀態,以繼續執行。

死鎖的檢測和解除措施,有可能使系統獲得較好的資源利用率和吞吐量,但在實現上難度也最大。

2樓:匿名使用者

通俗點說,就是物件被鎖住,你無法使用它,

可以是單筆資料死鎖,也可以是對整個表死鎖。

你更新或插入資料的時候,會對你操作的資料自動進行鎖定,否則好幾個人同時修改同一筆資料,以誰的為準?以鎖的那個人為準,如果你的操作失敗,則可能會造成死鎖。

很通俗的**,從專業上來說則是另外一回事。

查詢死鎖的sql:

select /*+ rule*/ a.sid, b.owner, object_name, object_type

from gv$lock a, all_objects bwhere type = 'tm' and a.id1 = b.object_id ;

3樓:蜀中靚仔

/** 同步巢狀的時候容易出現死鎖

* 下面是死鎖的一個範例

*/public class deadlockdemo}class saleticket implements runnable

}} else }}

public synchronized void sale()  catch (interruptedexception e)

system.out.println(thread.currentthread().getname() + "...." + tickets--);}}}}

動物還有那些奇特的語言?請舉例子簡要說明。急

語言交流就是資訊傳遞行為訊號 鷹擊長空 報警 蜜蜂的舞蹈化學訊號 狗的尿液 標誌領地 光訊號 果實變紅 可以採食 親,請參考,答案bai不唯一 1 覓食du 求偶 識別zhi 自衛 2 說明 了雄蛾觸角的靈dao敏 3 1 答 不是。因 回為這是由動物的答趨光性決定的,不是有動物之間傳遞資訊的動作 ...

舉例子,說明美國三權分立是怎樣制約與平衡的

樓上的基本正確,但是有一處錯誤 的提案,國會可以否決,可以對國會的結果再否決,最終以國會 不是 為準。舉個例子 2008年金融危機,布什 出臺的就是政策被國會否決了,後來布什修改了才被通過的,按照樓上說的,那就是 的提案無論如何得通過,顯然是不合理的,不正確。我是研究過西方制度的,希望對樓主有所幫助...

事物之間往往存在聯絡,是請你舉例子來說明

例如天上下雨,地面就會溼 太陽出來,東西就容易晒乾。例如你來問我來答,所以一問與一答有必然的聯絡 請自己舉一個例子來說明事物之間的相互聯絡 聯絡是事物之間以及事物內部諸要素之間的相互依賴 相互影響 相互制約和相互作用 的關係 20世紀80年代,在歐美流行著一種家庭小擺設 生態球。在一個密閉的玻璃球中...