Java线程间通信
1.由來
當需要實現(xiàn)有順序的執(zhí)行多個線程的時候,就需要進行線程通信來保證2.實現(xiàn)線程通信的方法
wait()方法:
wait()方法:掛起當前線程,并釋放共享資源的鎖notify()方法:
notify()方法:在因調用該對象的wait()方法而阻塞的線程中隨機選擇一個解除阻塞,但要等到獲得鎖后才可真正執(zhí)行notifyAll()方法:
notifyAll()方法:將因調用該對象的wait()方法而阻塞的所有線程一次性全部解除阻塞注意
這些方法都是繼承自Object 類 ,在任何類中都可以調用必須在同步方法或者同步代碼塊中調用 否則 IllegalMonitorStateException3.wait()和sleep()異同點
相同點都可以使線程進入到阻塞狀態(tài)不同點sleep() 設定時間到了,可以自己進入到可執(zhí)行狀態(tài)wait() 必須要通過notify喚醒 才能進入到 可執(zhí)行狀態(tài)sleep 可以釋放 cpu資源,不能釋放鎖資源wait() 釋放了cpu 也釋放了鎖總結
- 上一篇: Java线程同步
- 下一篇: Java之进程与线程练习