寫乙個死鎖和簡單排查命令

2021-10-10 23:45:00 字數 794 閱讀 7620

話不多說,上定義

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

知道了死鎖定義,那麼下面簡單寫乙個死鎖的例子

class

holdthread

implements

runnable

@override

public

void

run(

)catch

(interruptedexception e)

synchronized

(strb)}}

}

呼叫

public

static

void

main

(string[

] args)

執行結果

使用命令 jps -l 顯示出當前後台程序id以及哪個類

使用 jstack 程序id 檢視執行資訊

寫乙個死鎖

死鎖產生的原因 乙個執行緒進入鎖一需要鎖二,另乙個執行緒進入鎖二需要鎖一,由於鎖一鎖二都被佔了,所以執行緒執行不下去。所以只需寫乙個相互交叉的鎖一鎖二就可以產生死鎖。class sisuogoucheng implements runnable public void run if panduan ...

死鎖的誕生,寫乙個簡單的死鎖例項

在實際程式設計中,要盡量避免出現死鎖的情況,但是讓你故意寫乙個死鎖的程式時似乎也不太簡單 有公司會出這樣的面試題 以下是乙個簡單的死鎖例子。執行緒的同步化可能會造成死鎖,死鎖發生在兩個執行緒相互持有對方正在等待的東西 實際是兩個執行緒共享的東西 只要有兩個執行緒和兩個物件就可能產生死鎖。乙個簡單的死...

寫乙個死鎖的例子

這是乙個很好玩的題,做併發的話,不小心能寫出來。讓你寫乙個一定死鎖的例子,沒有思考過的話,確實不容易。下邊的是 的乙個,別人寫的。非常典型的乙個互相等待導致的死鎖的例子,很好理解。package com.spri.test 在實際程式設計中,要盡量避免出現死鎖的情況,但是讓你故意寫乙個死鎖的程式時似...