1

イベントリスナーで私は持っています:

public void keyPressed(KeyEvent e) { //the same logic for mouse events, etc.
   synchronized(lockFoo) {...}
}

そして、コードのどこか別のスレッドで:

public void bar() {
   synchronized(lockFoo) {...}
}

lockFooがロックされている間に2つ以上のイベントが発生した場合、それらはFIFOキューになり、順番を待ちますか、それともドロップされますか?FIFOキューイングがより望ましい動作です。

4

3 に答える 3

2

FIFOを使用する場合は、フェアコンストラクター引数を「true」に設定してReentrantLockを使用します。一般的な同期では、それはまったく不可能です。

于 2013-02-08T05:05:25.563 に答える
0

彼らは順番を待ち、最終的には予測できない順序で実行されます(厳密なFIFOはありません)。

于 2013-02-08T04:36:59.420 に答える
0

スレッドは確実にキューに入れられますが、順序はによって異なります。それ以外のThread Priority場合はランダムです。FIFOの保証はありません。

于 2013-02-08T04:46:08.153 に答える