-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
테스트 실패 후 tryLock waitTime 설정 변경 뒤 테스트 성공에 대한 질문
23.08.08 01:39 작성 조회수 381
0
waitTime을 10초로 설정했어도 leaseTime이 1이기 때문에 테스트는 성공했어야 할 것 같은데 왜 실패하나요?
그리고 waitTime을 10초에서 15초로 변경하면 왜 성공하나요?
답변을 작성해보세요.
0
최상용
지식공유자2023.08.09
김찬님 안녕하세요.
waitTime 은 락 대기를 위해 기다리는 시간이고 leaseTime 은 락을 점유하는 시간이기 때문입니다.
1번째 락을 점유한스레드가 10:00 에 점유하였고 10:11초에 락을 해제한다고 할때 10초를 기다리면 락을 얻지 못하므로 실패하고 15초로 늘려주면 락을 얻을 수 있기때문에 성공하는 것입니다.
감사합니다.
김찬
질문자2023.08.14
jhj13062004님이 말씀하신대로, leaseTime(점유하는 시간)이 1초니까 1초만 점유한 뒤 10:01에 락을 해제하게 되는 것 아닌가요?
최상용
지식공유자2023.08.14
1번째 락을 점유한 스레드가 10:00 획득 10:01 해제
2번째 락을 점유한 스레드가 10:01 획득 10:02 해제
.....
15번째 락을 점유한 스레드가 10:14 획득 10:15 해제
를 하게 된다면 16~100 스레드는 락획득에 실패하게 됩니다.
만약 1초씩걸린다고 했을때 100초를 기다린다고 하면 모두가 락을 획득할 수 있을 것입니다.
답변 1