TIPS
2025. 6. 2.
ReentrantLock vs synchronized — 자바 락의 실전 비교
멀티스레드 환경에서 공유 자원을 안전하게 다루기 위해 락(Lock)을 사용하는 건 기본 중의 기본이다.그중 synchronized는 가장 널리 쓰이는 키워드지만, 실무에서는 ReentrantLock을 선택하는 경우도 많다.둘의 차이는 단순히 문법적인 것만이 아니라, 유연성과 제어력의 차이에 있다. 1. synchronized — 자바의 전통적인 락 public synchronized void doSomething() { // 임계영역} 메서드나 블록에 synchronized를 붙이면 해당 영역에 한 번에 하나의 스레드만 접근 가능하다.락을 얻지 못한 스레드는 자동으로 블로킹(대기) 된다.락은 메서드가 끝나거나 블록이 종료될 때 자동으로 해제된다. 장점문법이 단순하고 자동으로 락 해제돼 실수할 가능성..