lock 인터페이스, lock 클래스 종류

CODEDRAGON Development/Java

반응형


 

lock 인터페이스

·       JDK 1.5 부터 추가된 동기화 방법

·       synchroized블럭을 이용한 동기화는 자동적으로 lock 걸리고 풀리기 때문에 synchronized블럭 내에서 예외가 발생해도 lock 자동으로 풀립니다. , 같은 메소드내에서만 lock 있습니다. 이런 제약이 불편할 경우 lock 인터페이스를 구현한 클래스를 사용하면 됩니다.

 

Interface Lock

https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html

 

 

 

 

lock 클래스 종류

종류

설명

ReentrantLock

·       재진입이 가능한 lock

·       가장 일반적인 배타 lock

·       lock 인터페이스의 구현 클래스

RentrantReadWriteLock

·       읽기에는 공유적이고, 쓰기에는 배타적인 lock

·       lock 인터페이스의 구현 클래스

StampedLock

·       RentrantReadWriteLock 낙관적인 lock 기능을 추가

 

Class ReentrantLock

https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html

 

Class ReentrantReadWriteLock.ReadLock

https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.ReadLock.html

 

Class ReentrantReadWriteLock.WriteLock

https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.WriteLock.html

 

Class StampedLock

https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/StampedLock.html