문제

SUN 문서를 찾을 수 없으므로 Java (특히 ReentranTreadWritelock 구현)의 ReadWritelocks에 대한 빠른 질문입니다.

쓰기 잠금을 다른 사람에 의해 요청할 때 읽기 잠금 장치가 스레드에 의해 유지되면 어떻게됩니까? Write Lock 스레드는 현재 고정 된 모든 읽기 잠금 장치가 출시 될 때까지 기다려야합니까? 또한 쓰기 잠금 장치가 부여되고 해제 될 때까지 모든 새로운 읽기 잠금 요청이 차단됩니까?

감사

도움이 되었습니까?

해결책

Javadoc은 다음을 설명합니다.

이 클래스는 독자 나 작가 선호도를 잠금 액세스 주문을 부과하지 않습니다. 그러나 선택 사항을 지원합니다 공평정책. 공정한 것으로 구성되면 스레드는 대략 도착 주문 정책을 사용하여 입력하기 위해 경쟁합니다. Write Lock이 출시되면 가장 오래 기다리는 단일 작가에게는 Write Lock이 할당되거나 작가보다 더 오래 기다리는 독자가 있으면 독자 세트에 읽기 잠금 장치가 할당됩니다. 비 공석으로 구성된 경우, 잠금 장치 입력 순서는 도착 순서로 도착할 필요가 없습니다. 두 경우 모두 독자가 활성화되고 작가가 잠금에 들어가면 그 작가가 Writ


쓰기 잠금을 다른 사람에 의해 요청할 때 읽기 잠금 장치가 스레드에 의해 유지되면 어떻게됩니까? Write Lock 스레드는 현재 고정 된 모든 읽기 잠금 장치가 출시 될 때까지 기다려야합니까?

예, 작가는 기다려야 할 것입니다. 그러나 현재 고정 된 읽기 잠금 장치 만 기다릴 것입니다. 나중에 도착하는 모든 독자는 작가 이후에 대기열입니다.

또한 쓰기 잠금 장치가 부여되고 해제 될 때까지 모든 새로운 읽기 잠금 요청이 차단됩니까?

다른 팁

ReadWriteLock 읽기 잠금과 동시에 쓰기 잠금을 유지할 수 없습니다. 읽기 잠금 장치가 유지 될 때 쓰기 잠금 요청은 차단 또는 실패를 초래합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top