java執行緒死鎖模擬

2021-08-14 18:59:16 字數 624 閱讀 8419

1,關於死鎖的理解

死鎖,我們可以簡單的理解為是兩個執行緒同時使用同一資源,兩個執行緒又得不到相應的資源而造成永無相互等待的情況。

2,模擬死鎖

背景介紹:我們建立乙個朋友類,當朋友向我們鞠躬的時候,我們也要向朋友鞠躬,這樣才算乙個完整的動作。當兩人

同時鞠躬的時候,都在等待對方鞠躬。這時就造成了死鎖。

模擬程式:

package com.yxy.thread;

/*** @author windows

* 死鎖模擬程式

*/public class deadlock

//獲取名字

public string getname()

//朋友向我鞠躬方法,(同步的)

public synchronized void bow(friend bower)

//我回敬鞠躬方法,(同步的)

public synchronized void bowback(friend bower)

}public static void main(string args)

})。start();

new thread(new runnable()

})。start();}}

使用java執行緒模擬死鎖

原文 當兩個或多個執行緒之間同時等待對方釋放資源的時候就會形成執行緒之間的死鎖 當兩個執行緒被阻塞,每個執行緒在等待另乙個執行緒時就發生死鎖 當多個執行緒等待乙個物件鎖時,沒有獲取到鎖的執行緒將發生阻塞。執行緒的阻塞 1.sleep 方法 sleep 允許指定以毫秒為單位的一段時間作為引數,它使得執...

Java執行緒死鎖

需要避免的與多工處理有關的特殊錯誤型別是死鎖 deadlock 死鎖發生在當兩個執行緒對一對同步物件有迴圈依賴關係時。例如,假定乙個執行緒進入了物件x的管程而另乙個執行緒進入了物件y的管程。如果x的執行緒試圖呼叫y的同步方法,它將像預料的一樣被鎖定。而y的執行緒同樣希望呼叫x的一些同步方法,執行緒永...

模擬線程死鎖

b color blue synchronized 特點 color b 兩個synchronized 方法,當乙個執行緒已經獲取鎖定,其它執行緒就不能再執行 color red b 同一例項 b color 的synchronized 方法.b color red 非 color b synchr...