死鎖的案例

2021-08-15 20:42:47 字數 523 閱讀 1136

死鎖就是當有兩個或兩個以上的執行緒都獲得對方的資源,但彼此有不肯放開,處於僵持狀態,此時便造成了死鎖

package cn.et.deadlock;

public class deadlock implements runnable catch (interruptedexception e)

synchronized (obj2) }}

if (flag == 0) catch (interruptedexception e)

synchronized (obj1) }}

}public static void main(string args)

}

執行結果

執行緒開始嘍!

flag=0

我已經鎖定obj2,休息0.5秒後鎖定obj1去!

flag=1

我已經鎖定obj1,休息0.5秒後鎖定obj2去!

死鎖的小案例

關於死鎖的一些小概念 死鎖是指兩個或兩個以上的程序在執行過程中,由於競爭資源或者由於彼此通訊而造成的一種阻塞的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的程序稱為死鎖程序。就我個人而言,我喜歡將死鎖叫做執行緒版的鷸蚌相爭.1.產生原因 複製的...

Lock死鎖的案例

死鎖 執行緒a和執行緒b相互等待對方持有的鎖導致程式無限死迴圈下去 1 兩個執行緒裡面分別持有兩個object物件 lock1和lock2。這兩個lock作為同步 塊的鎖 2 執行緒1的run 方法中同步 塊先獲取lock1的物件鎖,thread.sleep 然後接著獲取lock2的物件鎖。這麼做主...

死鎖案例分析

死鎖的產生以及解決辦法,看 分析,注意裡邊的注釋,自行執行。package thread 模擬買票 author yhl class thread02 implements runnable else 同步 塊 public void sale catch interruptedexception ...