1

クラス内のこのコードを想像してみてください。とをそれぞれval呼び出す別のスレッドで値を変更しようとしています。method1method2

val異なるオブジェクトを使用して同期している場合、変更が別のスレッドで表示されると予想されますか? また、設計するのに適したテスト ケースは何でしょうか?

private Object lock1 = new Object();
private Object lock2 = new Object();
private int val = 0;

public void method1 () {
    synchronized (lock1) {
       System.out.println(val);
       val = 1;
    }
}

public void method2 () {
    synchronized (lock2) {
       System.out.println(val);
       val = 2;
    }
}
4

1 に答える 1