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
Class ReentrantReadWriteLock.WriteLock
Class StampedLock
https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/StampedLock.html
'Development > Java' 카테고리의 다른 글
스레드 그룹 생성, 그룹에 새로운 스레드 추가하기 (0) | 2018.12.11 |
---|---|
ReentrantLock 클래스, ReentrantLock 클래스 생성자, 동기화 메소드 (0) | 2018.12.10 |
스레드 그룹 정보 얻기 - getThreadGroup(), Thread.getAllStackTraces() (0) | 2018.12.10 |
동기화 방법-synchronized - 메서드의 동기화 방법(synchronized기반 동기화 메소드), 특정 블록의 동기화 방법(synchronized기반 동기화 블록) (0) | 2018.12.07 |
Thread의 메모리 구조 (0) | 2018.12.07 |