CS/면접

교착상태

태태코 2025. 8. 29. 13:51
반응형

교착상태

두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리고있어 결과적으로 아무것도 완료되지 못하는 상태

 

교착 상태 조건

  • 상호 배제
    한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없는 것
  • 점유 대기
    자원을 할당받은 상태에서 다른 자원을 할당받기를 기다리는 상태
  • 비선점
    자원이 강제적으로 해제될 수 없으며, 점유하고 있는 프로세스의 작업이 끝난 이후에만 해제되는 것
  • 원형대기
    프로세스들이 원의 형태로 자원을 대기하는 것을 의미한다.

Java에서 데드락 해제하는 방법

1. synchronized 블락안에 synchronized 블락 넣지 않기

synchronized(resoucre1){

synchronized( resoucre2)

}


synchronized(resoucre2){

synchronized( resoucre1)

}

 

2. reentrantLock  사용 경우 tryLock()을 통해서 타임아웃을 걸고

lockinterruptibly() 인터럽트를 통해 깨울 수 있도록 한다.

 

 

반응형