java兩種方式實現死鎖

2021-08-04 02:54:01 字數 1038 閱讀 7250

產生死鎖的四個必要條件:

(1) 互斥條件:乙個資源每次只能被乙個程序使用。

(2) 請求與保持條件:乙個程序因請求資源而阻塞時,對已獲得的資源保持不放。

(3) 不剝奪條件:程序已獲得的資源,在末使用完之前,不能強行剝奪。

(4) 迴圈等待條件:若干程序之間形成一種頭尾相接的迴圈等待資源關係。

(一)對於第二種情況

public

class

locktest

implements

runnable catch (interruptedexception e)

synchronized (o2)

} } else catch (interruptedexception e)

synchronized (o1)

} }

}

public

static

void

main(string args)

}

(二)對於第四種情況

public

class

locktest

implements

runnable catch (interruptedexception e)

synchronized (o2)

} } else

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

synchronized (o3)

} }

else catch (interruptedexception e)

synchronized (o1)

} }

}

public

static

void

main(string args)

}

例子不難看懂,面試的時候有可能要求當場就要寫。

快排的java兩種實現方式

快排是最基礎的幾個排序演算法之一,今天再來回顧下 public class quicksort private static void quicksort int array,int beg,int end 上面就是快排主要的框架,最重要就是partition方法,它是劃分並找到下次分割排序的位置p...

Java實現執行緒阻塞的兩種方式

最近參加公司的乙個hackson比賽的時候,需要當前執行緒阻塞,並開啟乙個新的執行緒執行任務,任務執行完成後,再返回結果。執行緒相關的東西,用的都比較膚淺,所以當時只能在網上找了一堆文章,發現很多講得比較繁瑣,感覺如果單純的實現該需求的話,用本文中的兩種方式是最簡單的了。實現方式一,也是最簡單的就是...

單例模式(java兩種方式實現)

測試類 public class singletontest1 單例類 class singleton 構造方法私有帶來乙個問題,就是不能產生例項了,所以通過寫乙個方法返回乙個例項 第二步 public static singleton getinstance 必須為static 這樣在main中才...