|
|
1
9
据这家伙说: http://tutorials.jenkov.com/java-concurrency/starvation-and-fairness.html Java不能保证序列的正确性。所以我想这不是基于线程优先级的 我将尝试进一步解释Java究竟是如何决定谁先行的。 |
|
|
2
5
其他人提到了公平锁的可用性。如果你真的关心谁先去,那么你可能会有一个实时问题。在这种情况下,您可以使用rtsj,其中指定了锁获取的顺序和其他语义。具体情况见 RTSJ Spec 在下面 同步 . 引用基本原理部分:
|
|
|
3
1
第二个问题
从 http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html#notify () |
|
|
4
0
它取决于线程优先级和线程调度算法,而且同步块上的锁也是不公平的。这意味着,如果有两个具有相同优先级的等待线程,并且第一个线程等待的时间超过了第二个线程,则不一定意味着第一个线程将首先执行。 |