온라인 자습서를 기반으로, 나는 아래의 보안 코드를 사용했습니다.Java의 가드드 서스펜션
public synchronized String method1() throws InterruptedException {
lock = true;
Thread.sleep(17000);
lock = false;
notifyAll();
return "Method1";
}
public synchronized String method2() throws InterruptedException {
while(lock) {
wait();
}
Thread.sleep(3000);
return "From Method 2";
}
위의 두 메서드는 여러 스레드에서 동시에 호출됩니다.
위의 예에서 wait()의 사전 조건에 사용 된 잠금 변수가 true일까요?
synchronized 키워드를 사용하므로 두 방법 모두 상호 배타적으로 실행됩니다.
위의 예는 경비 서스펜션에 맞습니까?
언제 경비 서스펜션이 필요합니까?