執行緒死鎖是一定要規避的問題!
案例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,執行程式 ...