쓰레드의 동기화(3): Lock과 Condition을 이용한 동기화
·
자바/프로세스와 쓰레드
1. Lock 클래스 - synchronized 블럭 외에도 'java.util.concurrent.locks' 패키지가 제공하는 lock 클래스들을 이용하는 방법이 있다. - synchronized 블럭으로 동기화를 하면 자동적으로 lock이 잠기고 풀리며 심지어 예외가 발생하여도 lock은 자동으로 풀린다. - 그러나, 같은 메서드 내에서만 lock을 걸 수 있다는 제약이 있어서 불편할 때가 있다. - 그럴 때 아래와 같은 lock 클래스의 종류 3가지를 사용한다. 클래스 설명 ReentrantLcok 재진입이 가능한 lock, 가장 일반적인 배타 lock ReentrantReadWriteLock 읽기에는 공유적이고, 쓰기에는 배타적인 lock StampedLock ReentrantReadWriteL..