*용어정리2개 이상의 스레드가 병렬적으로 작동하는 멀티스레딩 프로그램에서는 공유자원에 대해 서로 다른 스레드가 접근할 때 세 가지의 조건을 만족하도록 프로그래밍하는 것이 가장 이상적이다.(예외도 물론 존재)1)상호배제: 서로 다른 스레드가 자신만의 작업을 수행하는 코드블럭인, 임계영역은 그것이 수행되는 시간 범위가 서로 겹치지 않는다. CS_A->CS_B 또는 CS_B->CS_A 여야 한다. 2)무교착 상태: 두 스레드가 모두 공유자원에 접근하려 한다면 적어도 하나의 스레드는 lock 상태를 얻고 접근할 수 있어야 한다.3)무기아 상태: 하나의 스레드만 공유자원에 접근하고 다른 스레드가 공유자원에 접근하는 것이 불가능한 경우는 없어야 한다. -교착상태: 스레드가 서로 자원에 접근하기를 기다려서 실행되지 ..