17 多執行緒 3

2021-10-25 17:58:12 字數 416 閱讀 1133

執行緒死鎖是一定要規避的問題!

案例1

產生死鎖的條件

兩個或兩個以上的執行緒在活動

某個執行緒在執行自己任務沒有執行完的情況下就想獲取第二個鎖,造成了鎖的巢狀

如何避免死鎖

當前執行緒一定要先釋放自己的鎖(執行完執行緒同步的方法的**)後再去執行其他的鎖(其他的執行緒同步的方法)

盡量不要鎖巢狀,不要在同步**塊裡面再去巢狀同步**塊

死鎖主要怕面試問到,應該盡量規避不要造成死鎖!

這是一道面試題

生產者:錄入資訊

消費者:讀取資訊

案例1:

案例2:增加執行緒同步

案例3:通過object類的notify()和wait()方法,喚醒和等待執行緒。讓生產者每生產好一件產品後等待,並同時喚醒消費者執行緒獲取商品

多執行緒 17 多執行緒題1

1 原始 現有的程式 模擬產生了16個日誌物件,並且需要執行16秒才能列印完這些日誌,請在程式中增加4個執行緒去呼叫parselog 方法來分頭列印這16個日誌物件,程式只需要執行4秒即可列印完這些日誌物件。原始 如下 public class test parselog方法內部的 不能改動 pub...

多執行緒17 死鎖

死鎖 思路 首先要有兩個物件口紅 lipstick 類 和鏡子 mirror 類 然後需要一件事情,比如都要去化妝 makeup 類繼承一下thread類重寫run方法,只有乙份資源 用static保證只有乙份 乙個口紅乙個鏡子。我呢,先拿到了口紅,你呢,你先拿了鏡子。1秒鐘以後我想拿鏡子,2秒後你...

17 Java多執行緒 執行緒狀態

一.執行緒狀態型別 1.新建狀態 new 新建立了乙個執行緒物件。2.就緒狀態 runnable 執行緒物件建立後,其他執行緒呼叫了該物件的start 方法。該狀態的執行緒位於可執行執行緒池中,變得可執行,等待獲取cpu的使用權。3.執行狀態 running 就緒狀態的執行緒獲取了cpu,執行程式 ...