스레드1 Thread (4) - 락킹 기법과 데드락 DeadLock 교착상태라고 불리며 두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리는 상태를 말합니다. 예제 코드로 살펴보겠습니다. public void Thread1() { lock(A) lock(B) task unlock(B) unlock(A) } public void Thread2() { lock(B) lock(A) task unlock(A) unlock(B) } 스레드 1이 lock(A)를 겁니다. 스레드 2이 lock(B)를 겁니다. 스레드 1이 B에 접근하려고 하자 락이 걸려있어 대기를 합니다. 스레드 2이 A에 접근하려고 하지만 락이 걸려있어 대기를 합니다. 위와 같이 스레드1과 스레드2가 서로 대기 상태에 빠지는것을 데드락, 교착상태라고합니다. 데드락이 일어나는 이유 상호배제 .. Java/Thread 2023. 11. 9. 이전 1 다음