본문 바로가기

컴퓨터공학/Java

CS> deadlock은 무엇인가??

멀티 스레드 상황에서 생긴다. 

스레드의 교착상태. 멀티 스레드들이 진행을 안하고 서로 눈치를 보고 대치하는 상황을 의미한다.

프로그램은 진행이 안되고 멈춰있는 상태

 

정리

situation where mutliple threads are blocked forever

ways to prevent a deadlock

- avoid having more than one lock

하나 이상의 멀티플 락을 선정하지 않는다.

- avoid nested locks

멀티플 락이 필요하면 synchronized block 안에 또 다른 synchronized block 을 포함하지 말 것 

- lock order

만약 nested lock이 필요하면 순서를 동일한 순서로 적용할 것

- single thread

퍼포먼스가 중요하지 않은 상황이라면 싱글 스레드를 이용할 것