dead lock(교착상태) with JAVA
Deadlock(교착상태) 두 개 이상의 프로세스/스레드가 서로가 가진 리소스를 기다리는 상태 자동차는 프로세스/스레드를 나타내며, (1,2,3,4)는 리소스를 의미한다. 각 자동차는 직진을 하기 위해서, 2개의 리소스를 지나야 한다. 근데, 각 자동차가 동시에 직진을 하면, 오른쪽 그림과 같은 상태가 된다. 각 자동차는 1개의 리소스를 보유하고 있으나, 전진을 하기 위해서는 다른 자동차(프로세스/스레드)가 보유하고 있는 리소 스를 획득해야는데, 다른 자동차들도 또 다른 리소스를 획득하기 위하여 서로 대기 중이다. Deadlock이 발생하는 4가지 조건 1. Mutual exclusion : 리소스를 공유해서 사용할 수 없다, 즉 한 번에 1개의 프로세스/스레드만이 리소스를 가질 수가 있 다. 동시에 여..
더보기