멀티쓰레드 프로그래밍을 하다보면 스레드를 동기화 해주어야 한다. 쓰레드를 동기화 하는 이유는 여러 개의 쓰레드가 같은 프로세스 내의 자원을 공유하면서 작업하는 경우에 서로의 작업이 다른 작업에 영향을 주기 때문이다. 쓰레드의 동기화를 위해서 임계영역(critical section)과 잠금(lock)을 사용한다. 임계영역을 지정하고, 임계영역이 가지고 있는 lock을 단 하나의 스레드에게 빌려주는 개념이다. lock은 단 하나의 스레드만이 가질 수 있고, 임계영역 내에서 수행할 코드를 수행한 이후에는 lock을 반납하여야한다. 스레드를 동기화하는 방법들 임계영역(critical section): 공유 자원에 대해 단 하나의 스레드만 접근하도록 한다. (하나의 프로세스에 속한 스레드만 가능하다) 뮤텍스(mu..