在事件监听器中我有:
public void keyPressed(KeyEvent e) { //the same logic for mouse events, etc.
synchronized(lockFoo) {...}
}
代码中的其他地方,在另一个线程上:
public void bar() {
synchronized(lockFoo) {...}
}
如果两个或更多事件在lockFoo被锁定时触发,它们会提示FIFO并等待轮到他们还是会被丢弃? FIFO Cuing是更理想的行为。
答案 0 :(得分:2)
如果你想使用FIFO - 然后使用ReentrantLock将公平构造函数参数设置为“true”。通过通用同步,根本不可能。
答案 1 :(得分:0)
他们将等待轮到他们并最终以不可预测的顺序执行(没有严格的FIFO)。
答案 2 :(得分:0)
线程将确定排队,但顺序取决于Thread Priority
,否则为Random。没有担保FIFO。