我正在阅读 Condition Documentation我对Java有一个误解。阅读他们的 put
和 take
示例,正如您所见,他们在函数 put
中包含以下代码行: notEmpty.signal( )
其中 notEmpty
是来自 lock
的条件。
我想知道如果有多个线程正在等待notEmpty
信号怎么办。在这种情况下会发生什么以及触发哪个线程?
最佳答案
它对处理它的操作系统进行系统调用。 JVM 不知道哪个线程(如果有的话)将会唤醒。
线程是由操作系统而不是 JVM 管理的,因此它能做的最好的事情就是进行正确的系统调用,然后让操作系统完成剩下的工作。
关于java - Java 中的条件如何知道要触发哪个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52197272/