乙個死鎖的簡易好理解的Demo

2021-08-21 14:44:28 字數 547 閱讀 5392

package 死鎖demo;

public

class

deadlock

implements

runnable

@override

public

void

run() catch (interruptedexception e)

synchronized(o2)

}}else catch (interruptedexception e)

synchronized(o1) }}

}}

package 死鎖demo;

public

class testthread

}

這裡運用synchronized和sleep方法產生了死鎖。因為sleep方法和wait方法不同,sleep方法不會釋放記憶體鎖,所以因為synchronized的存在導致產生了死鎖,無執行結果的產生。

這是我看網上乙個大牛寫的,我覺得寫的很好簡單易懂,故此分享。

乙個JAVA死鎖的Demo

死鎖的條件肯定是兩個鎖以上時,才會 發生死鎖,以下demo是模擬的兩個鎖,通過兩個執行緒分別呼叫兩個方法,這兩個方法加鎖的順序正好相反,從而造成兩個執行緒相互等待,互不釋放鎖 package com.threaddemo public class deadlocksample private voi...

乙個關於 死鎖 的實現Demo

乙個死鎖的實現 public class mytestsisuo catch interruptedexception e system.out.println t1 get o1 需要資源o2 但是 t2 獨佔 未釋放 互相競爭資源 死鎖 synchronized o2 thread t2 new...

乙個簡單的死鎖

死鎖 當第乙個執行緒進入第乙個if進入鎖定o1鎖定o2的同步塊,第二個執行緒在外邊等待 當第乙個執行緒出來進入第二個if,第二個執行緒進第乙個if進入o1同步 塊,第乙個執行緒進入第二個if的o2同步 塊,兩個執行緒互相等待彼此釋放鎖,造成死鎖 public class diedlock imple...