以下のtry
ブロックでは、3 つのステートメントをこの順序で実行する必要があります。ステートメントが順不同で実行される可能性はありますか? JVM は juc クラスを先読みして、同期インジケーター (同期済み、揮発性) を確認し、実行を並べ替えてはならないことを判断しますか?
private Deque<Integer> deque = new LinkedList<Integer>();
private Lock lock = new ReentrantLock();
private Condition condition = lock.newCondition();
class Producer implements Runnable {
@Override
public void run() {
while (true) {
try {
lock.lock();
deque.add(1);
condition.signalAll();
} finally {
lock.unlock();
}
}
}
}