java java中的notify和notifyAll有什么區(qū)別?
java中的notify和notifyAll有什么區(qū)別?Notify()是所有Java對象都具有的方法。它繼承子對象類,并且是final。不能超載。它的功能是喚醒一個等待了一百次的線程。時間順序通常如
java中的notify和notifyAll有什么區(qū)別?
Notify()是所有Java對象都具有的方法。它繼承子對象類,并且是final。不能超載。它的功能是喚醒一個等待了一百次的線程。時間順序通常如下:degree thread=newthread(newrunnable()publicvoid run(){)。同步(保護){衛(wèi)兵,等等()//在此調(diào)用后,線程將不再處于活動狀態(tài),并將進入等待狀態(tài)。切換到另一個線程運行警衛(wèi)通知()調(diào)用跟蹤后,虛擬機可以選擇任何調(diào)用衛(wèi)兵,等等()的線程被投入運行,選擇的順序不是由代碼控制的,而是由虛擬機控制的。如果它是notifyall(),則將調(diào)用所有等待的線程來運行。如果我們使用C代碼,我們通常使用pthread庫pthreadconduuinit創(chuàng)建一個等待條件,這個條件可以在任何時候調(diào)用pthreadconduuwait來進入等待,相當于調(diào)用衛(wèi)兵,等等(),其他線程可以調(diào)用pthread cond Signal wake-up,相當于notify,也可以調(diào)用pthread cond Braodcast,相當于notifyAll