synchronized 키워드와 ReentrantLock 클래스에 대해 DarkKaiser, 2010년 5월 5일2023년 9월 5일 출처 : http://mindwing.kr/103 synchronized 키워드 대신 java.util.concurrent.ReentrantLock 을 쓰면 다음의 잇점들이 생깁니다. lock 을 얻으려는 스레드를 interrupt 시킬 수 있다. lock 을 얻는데 대한 timeout 을 설정할 수 있다. lock 에 2개 이상의 condition 을 설정해서 쓸 수 있다. synchronized 키워드를 위해 JVM 이 사용하는 lock 기능은 하드웨어의 lock 메커니즘과 잘 매핑되지 않는 문제를 피할 수 있다. 둘 중의 무엇을 쓸 것인지는 다음 가이드를 따르면 됩니다. java.util.concurrent 패키지에는 lock 기능을 제공하는 다른 클래스들이 많이 있다. 데이터 구조등의 사용 목적에 따라 이들 클래스를 쓰는 것이 synchronized 키워드나 ReentrantLock 클래스를 쓰는 것보다 낫다. synchronized 키워드로 잘 동작하고 있는 코드거나 그런 코드를 잘 만들 수 있다면 synchronized 키워드를 쓰는 것이 코드 수도 적고, 에러가 발생할 가능성도 낮다. 여러 condition 을 설정해서 써야 한다면 ReentrantLock 클래스를 쓴다. Java