Locking에 의해서 발생 할 수 있는 또 다른 문제는 dead lock 현상입니다. 두개 이상의 Thread가 서로 lock을 잡고 기다리는 “환형대기조건”이 성립되었을 때 서로 lock이 풀리지 않고 무한정 대기하는 현상을 이야기 합니다. 그림 1 을 보면 Thread1 은 methodA를 수행하고 있는데, synchronized methodB를 호출하기 전에 Thread2가 methodB가 끝나기를 기다리고 있습니다. 마찬가지로 Thread2는 Thread3가 수행하고 있는 methodC가 끝나기를 기다라고 있고, methodC 에서는 Thread1에서 수행하고 있는 methodA 가 끝나기를 기다리고 있습니다. 즉 각각의 메소드들이 서로 끝나기를 기다리고 있는 “환형 대기조건”이기 때문에 이 a..