这个问题的灵感来自this other question

如果有多个线程在synchronized块上等待,并且锁可用,那么谁先走?是按线程优先级(然后是先到先得)进行吗?

相同的规则是否适用于notify(具有多个wait编码线程)?

最佳答案

根据这个家伙的说法:http://tutorials.jenkov.com/java-concurrency/starvation-and-fairness.html

Java对顺序不做任何保证。所以我想这不是基于线程优先级的

我将尝试进一步寻找有关Java实际上如何决定谁先行的解释。

关于java - Java:WAITING同步块(synchronized block),谁先走?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3940164/

10-12 18:36