等待/通知机制
等待/通知的相關方法是任意Java對象都具備的,因為這些方法被定義在所有對象的超類java.lang.Object上,方法如下:
1.notify() :通知一個在對象上等待的線程,使其從main()方法返回,而返回的前提是該線程獲取到了對象的鎖
2.notifyAll():通知所有等待在該對象的線程
3.wait():調用該方法的線程進入WAITING狀態,只有等待其他線程的通知或者被中斷,才會返回。需要注意調用wait()方法后,會釋放對象的鎖 。
Exception in thread “Thread-0” java.lang.IllegalMonitorStateException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at com.mayikt.thread.days02.Thread03.run(Thread03.java:16)
注意:wait,notify和notifyAll要與synchronized一起使用
總結
- 上一篇: 多线程综合小案例
- 下一篇: wait/notify/notifyAl