多執行緒三(互動)

2021-06-23 01:38:36 字數 693 閱讀 3629

1) wait、 notify、 notifyall

這單個方法是屬於object類的方法

wait: 導致當前的執行緒等待,直到其他執行緒呼叫此物件的notify()方法或notifyall()方法

notify: 喚醒在此物件監視器等待的乙個執行緒

notifyall: 喚醒在此物件監視器上等待的所有執行緒

2) demo

public class testwait3  catch (interruptedexception e) 

system.out.println("t1 end");}}

};thread t2 = new thread() catch (interruptedexception e)

obj.notify();

try catch (interruptedexception e)

system.out.println("t2 end");}}

};t1.start();

t2.start();

}public void m()

}

t2.notify()之後會釋放鎖,但是會繼續執行t2後,才會執行得到鎖的t1;wait會讓出cpu,而notify不會讓,notify重在通知使用obj的物件「用完了」,wait重在通知其他同乙個obj的執行緒「我暫時不用了」並且讓出cpu

多執行緒 執行緒互動

在實際功能中,會存在一些執行緒互動的情況。比如 乙個執行緒執行某個操作,當操作的物件到達某種狀態時,會等待其他執行緒來執行。下面 的功能是,乙個執行緒對乙個數字執行減少方法,當減到1時,等待增加執行緒操作。public class thread interactive extends thread ...

010 多執行緒互動

1 使用join執行緒間排隊 2 使用wait notify 進行執行緒間互動 3 使用 countdownlatch進行執行緒互動等待執行緒id 11正在等待其他執行緒 等待執行緒id 11汽車 完成執行緒id 21正在工作 執行緒id 16正在工作 執行緒id 17正在工作 執行緒id 13正在...

多執行緒的互動

當多個執行緒同時共享訪問同一資料時,每個執行緒都嘗試操作該資料,從而導致改資料被破壞,這種現象稱為爭用條件。同步的實現 wait notify notifyall 當乙個執行緒要訪問共享資源,首先要拿到鎖後進入臨界區,如果發現某些條件不符合,呼叫wait方法釋放鎖資源,執行緒進入鎖物件上的wait ...