1.wait與notify是使用在同步**塊或同步方法中的
2.他們都是object的方法
3.notify是需要獲取鎖的,會隨機喚醒乙個處理等待狀態的執行緒
4.wait方法是會釋放鎖的
5.notifyall會喚醒所有wait的執行緒,但是拿到cup時間片的執行緒只有乙個
6.thread類的乙個方法join()
b執行緒在a執行緒中呼叫join()方法,那麼a執行緒會等待b執行緒的執行完畢,a執行緒才繼續往下執行
package com.roy.condition;
/** * @authror royluo
* @date 2020/2/29 14:59
**/public
class
waitandnotifydemo
catch
(interruptedexception e)
} signal++
; system.out.
println
("a");
notifyall()
;}public
synchronized
voidb(
)catch
(interruptedexception e)
} signal++
; system.out.
println
("b");
notifyall()
;}public
synchronized
voidc(
)catch
(interruptedexception e)
} system.out.
println
("c");
signal =0;
notifyall()
;}public
static
void
main
(string[
] args)
catch
(interruptedexception e)
system.out.
println
("執行完畢");
}}class
eimplements
runnable
@override
public
void
run()}
class
fimplements
runnable
@override
public
void
run()}
class
gimplements
runnable
@override
public
void
run(
)}
dcd 03 執行緒的通知notify與等待wait
wait notify notifyall 方法 wait notify notifyall 是三個定義在object類裡的方法,可以用來控制線程的狀態。這三個方法最終呼叫的都是jvm級的native方法。隨著jvm執行平台的不同可能有些許差異。public class notifyalldemo ...
Notify與Wait方法使用(一)
一 基本使用 public class notifyandwait class mythread extends thread override public void run catch interruptedexception e system.out.println thread.curren...
關於wait與notify的使用
wait可以把某個拿到鎖的執行緒冬眠,並釋放鎖。其他執行緒獲取鎖,完成工作後,可以通過notify喚醒其他需要這個鎖的冬眠程序。冬眠程序醒了後,嘗試獲取鎖,得到鎖後繼續工作。好比一群熊圍著乙個碗,要吃飯。1 看到碗裡沒有飯,就放開碗去睡覺 wait 以免影響飼養員放食物。碗只能乙個動物使用 乙個帶鎖...