notify()是java所有對象都具有的方法,繼承子object類并且為final,不能重載。
其作用是喚醒一個等待的線程,時序一般是這樣:
Thread t = new Thread( new Runnable()
public void run()
{
.
synchronized(guard)
{
guard.wait();//此處調(diào)用后該線程不再活動,置于等待狀態(tài),切換到其他線程運行
}
}
)
guard.notify(); 調(diào)用后虛擬機(jī)可選擇任何一個調(diào)用了guard.wait()的線程投入運行,選擇順序不由代碼控制,由虛擬機(jī)實現(xiàn)。
如果是notifyAll(),則喚醒所有等待的線程運行。
如果是用c++代碼,一般要用到pthread庫
pthread_cond_init創(chuàng)建一個所謂的等待條件,
可以在任何時間調(diào)用pthread_cond_wait進(jìn)入等待,相當(dāng)于調(diào)用guard.wait(),
其他線程可以調(diào)用pthread_cond_signal喚醒,相當(dāng)于notify
還可以調(diào)用pthread_cond_braodcast,相當(dāng)于notifyAll
聲明:本網(wǎng)站尊重并保護(hù)知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:2.777秒