[JAVA] Java Deadlock 발생했을 때 처리 전략: 원인 분석부터 재발 방지까지
Java 애플리케이션에서 Deadlock은 코드가 멈춘 것처럼 보이지만, 실제로는 여러 스레드가 서로의 자원을 기다리며 빠져나오지 못하는 상태입니다. 단순히 서버를 재시작해서 넘길 수도 있지만, 원인을 확인하지 않으면 같은 문제가 다시 발생할 가능성이 높습니다.Java Deadlock은 어떤 상황에서 발생하는가Java Deadlock은 둘 이상의 스레드가 서로가 가진 락을 기다리면서 더 이상 진행하지 못하는 상태를 말합니다. 보통 synchronized, ReentrantLock, 데이터베이스 트랜잭션, 외부 API 호출과 락이 섞이는 코드에서 자주 확인됩니다.간단히 말하면 A 스레드는 lock1을 잡은 채 lock2를 기다리고, B 스레드는 lock2를 잡은 채 lock1을 기다리는 상황입니다. 서로 ..