reentrantReadWriteLock을 적용 할 때 잠긴 경우 이미 다른 블록을 수행하는 동안 다른 스레드가 잠금에 액세스하면 어떻게됩니까? (따라서 .unlock에 도달하기 전에)여러 스레드가 ReentrantReadWriteLock에 액세스하려고하면 어떻게됩니까?
메서드가 취소 되었습니까? 아니면 멈춘 것일까 요? : O
reentrantReadWriteLock을 적용 할 때 잠긴 경우 이미 다른 블록을 수행하는 동안 다른 스레드가 잠금에 액세스하면 어떻게됩니까? (따라서 .unlock에 도달하기 전에)여러 스레드가 ReentrantReadWriteLock에 액세스하려고하면 어떻게됩니까?
메서드가 취소 되었습니까? 아니면 멈춘 것일까 요? : O
사용할 수 있습니다. 복수의 thread가이 락을 취득하려고하면 (자), 그 모두가 블록됩니다. 잠금이 해제되면 대기 풀의 하나의 스레드 만 잠금을 획득하고 나머지는 여전히 대기합니다. 공정한 잠금과 불공정 한 잠금 사이의 difference을 참조하십시오.
차단하지 않으려면 Lock.tryLock()
(대기하지 않고 시도 함) 또는 tryLock(long time, TimeUnit unit)
을 사용할 수 있습니다. 지정하지 않는 한 대기합니다.
ReentrantReadWriteLock에 대해 이야기 했으므로,이 동작은 ReadWriteLock과 관련된 읽기 잠금 또는 쓰기 잠금 중 무엇을 사용하는지에 따라 달라집니다. 당신이 쓰기 잠금을 획득하려는 경우
라이터가없는 한 읽기 잠금은 여러 스레드에서 동시에 유지할 수 있습니다.
잠금 장치의 전체적인 점은 원래의 잠금 장치가 잠금 해제되기 전에 다른 누군가가 잠금을 시도하면 잠금 해제 될 때까지 잠금이 해제된다는 것입니다. 그런 식으로 스레드에게 잠금 기능, 잠금 기능, 잠금 해제 기능을 제공합니다. – corsiKa