1

Javaでスレッドを同期するためにCyclicBarrierを使用する場合、非揮発性変数を同期しますか?

int a = 0;
int b = 0;
CyclicBarrier barrier = new CyclicBarrier(2);

/*** Thread 1 ***/
public void run() {
    a = 2;
    barrier.await();

    doSomeStuff(b); // no side-effects
}

/*** Thread 2 ***/
public void run() {
    b = 3;
    barrier.await();

    doSomeStuff(a); // no side-effects
}

スレッド 1 の doSomeStuff 呼び出しで b が 3 に設定されていることを確認できますか? 試してみると、常に 3 です...

4

1 に答える 1