java的wait和notifyAll使用方法

2021-09-06 20:29:48 字數 644 閱讀 7384

class num

public void setnum(int num)

public num(int num) }

class mythreada extends thread

public void run()

catch (interruptedexception e)

system.out.println(1);

num.setnum(2);

num.notifyall();}}

}}class mythreadb extends thread

public void run()

catch (interruptedexception e)

system.out.println(2);

num.setnum(1);

num.notifyall();}}

}}public class test001

}

**如上所看到的

輸出內容例如以下21

2121

即重複輸出1和2.這裡我們就採用了執行緒的同步模式,乙個執行緒輸出1,另外乙個執行緒輸出2,而且可以進行同步,同步則是利用物件num的wait和notifyall來進行的。

通過乙個例子,描述執行緒wait和notify方法

場景 乙個類中,乙個是往容器中新增元素的方法,乙個是返回容器大小的方法,現在又兩個執行緒,a執行緒呼叫新增方法,b執行緒呼叫返回容器大小方法,當大小為5的時候,b執行緒提示並結束。可直接複製,執行 public class usewaitandnotify public intsize public...

java中sleep 和wait 的區別

sleep方法是thread類中定義的方法,而wait方法是object類中定義的方法。每個物件都有乙個鎖來控制同步訪問,synchronized關鍵字可以和物件的鎖互動,來實現同步方法或同步塊。執行sleep 方法的執行緒會主動讓出cpu 然後cpu就可以去執行其他任務 在sleep指定時間後cp...

JAVA中JOIN和WAIT的關係

首先上 1 執行結果1 執行結果2 thread 0 running thread 0 end main end 可以知道,join方法,可以使得某個執行緒阻塞執行,讓出cpu給其他執行緒,此示例就是,main執行緒被阻塞執行讓出cpu給timerthread執行緒,知道timerthread執行緒...