강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

도토리님의 프로필 이미지
도토리

작성한 질문수

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

ReentrantLock - 대기 중단

BankAccountV5 lock.unlock() 작성 여부

작성

·

279

0

BankAccountV5에서 lock.tryLoc()을 사용하는 경우, lock을 얻지 못하면 WAITING하지 않고 바로 return false;하므로 finally { lock.unlock(); }라는 코드가 필요 없을 것이라 생각했는데 이 코드가 꼭 필요한 코드인가요?

퀴즈

51%나 틀려요. 한번 도전해보세요!

스레드가 `synchronized` 블록에 들어가기 위해 기다리는 상태(Blocked)일 때, 인터럽트될 수 있나요?

네, 즉시 깨어납니다.

아니요, 인터럽트를 무시하고 계속 기다립니다.

일정 시간 기다린 후 깨어납니다.

다른 스레드가 `notify()`를 호출해야 깨어납니다.

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 도토리님 🙂

진입에 실패한다면 어차피 해당 코드가 호출되지 않습니다.

하지만 만약 진입에 성공한다면 어떻게 될까요? 이 부분도 함께 고려해야 합니다.

감사합니다.

도토리님의 프로필 이미지
도토리

작성한 질문수

질문하기