2012-07-28 5 views
3

ReentrantLock은 전적으로 계속적인 자물쇠 수집을 위해 동기화에 대해 어떻게 수행합니까?대 연속되지 않은 자물쇠에 대한 ReentrantLock 대

2 개의 잠금 클래스를 구현하려는 경우 (즉, 2 개의 다른 잠금이 필요하고 동기화가 LinkedBlockingQueue와 같이 충분하지 않음) put 및 take 잠금 획득이 thread1 및 thread 2로 수행되는 경우 (항상), 이는 잠금이 계속되는 것을 의미하고 스레드 지역성의 원칙이 들어 오면 ReentrantLock은 동기화에 대해 어떻게 수행합니까 (큐의 완전 잠금을 수반 할 수 있습니까)?

+0

가능한 중복 : // 유래 .com/questions/11600520/synchronized-vs-reentrantlock-on-performance) – oers

답변

3

주로 ReentrantLock은 3 개 이상의 스레드가 경합 할 때 이기지만 하드웨어, OS, JVM 버전 및 옵션에 따라 다릅니다.

마틴 톰슨 ReentrantLock와에 대한 연구 결과를 발표 대 자신의 블로그에 블록과 바이어스 잠금을 동기화 : [성능에 ReentrantLock와 대 동기화 (HTTP의

http://mechanical-sympathy.blogspot.com/2011/11/java-lock-implementations.html

http://mechanical-sympathy.blogspot.com/2011/11/biased-locking-osr-and-benchmarking-fun.html