notify()是java所有对象都具有的方法,继承子object类并且为final,不能重载。
其作用是唤醒一个等待的线程,时序一般是这样:
Thread t = new Thread( new Runnable()
public void run()
{
.
synchronized(guard)
{
guard.wait();//此处调用后该线程不再活动,置于等待状态,切换到其他线程运行
}
}
)
guard.notify(); 调用后虚拟机可选择任何一个调用了guard.wait()的线程投入运行,选择顺序不由代码控制,由虚拟机实现。
如果是notifyAll(),则唤醒所有等待的线程运行。
如果是用c++代码,一般要用到pthread库
pthread_cond_init创建一个所谓的等待条件,
可以在任何时间调用pthread_cond_wait进入等待,相当于调用guard.wait(),
其他线程可以调用pthread_cond_signal唤醒,相当于notify
还可以调用pthread_cond_braodcast,相当于notifyAll
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.777秒