Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java';什么是通知工作?_Java_Concurrency_Notify - Fatal编程技术网

Java';什么是通知工作?

Java';什么是通知工作?,java,concurrency,notify,Java,Concurrency,Notify,在有多个实例等待的线程中调用notify()时,Java(或JVM)如何选择要唤醒的线程?notify方法只唤醒一个等待对象的线程,该线程开始执行。因此,如果有多个线程等待一个对象,此方法将只唤醒其中一个线程。要唤醒的线程的选择取决于线程管理的操作系统实现。您可以使用以下来源获得答案: 第17.2.2章通知: 无法保证选择了等待集中的哪个线程 在对象上,notify()读取: 唤醒正在该对象监视器上等待的单个线程。如果有任何线程正在等待此对象,则选择其中一个线程进行唤醒选择是任意的,由实现自行

在有多个实例等待的线程中调用notify()时,Java(或JVM)如何选择要唤醒的线程?

notify方法只唤醒一个等待对象的线程,该线程开始执行。因此,如果有多个线程等待一个对象,此方法将只唤醒其中一个线程。要唤醒的线程的选择取决于线程管理的操作系统实现。

您可以使用以下来源获得答案:

  • 第17.2.2章通知:
    无法保证选择了等待集中的哪个线程

  • 在对象上,notify()读取:
    唤醒正在该对象监视器上等待的单个线程。如果有任何线程正在等待此对象,则选择其中一个线程进行唤醒选择是任意的,由实现自行决定。


它没有;结果是不确定的。这就是为什么不应该使用它,而应该使用
.notifyAll()
。除非您完全确定您只有一个
.wait()
er。注意:如果对象上没有线程等待,通知将被丢弃。如果您认为之前的研究不足,请对问题进行否决。我喜欢你指出资源的方法,这些资源本可以找到+1.