wait與notify執行緒之間的通訊

2021-10-03 08:36:04 字數 1518 閱讀 9001

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 以免影響飼養員放食物。碗只能乙個動物使用 乙個帶鎖...