쓰레드는 서로 메모리를 공유하기 때문에 공통으로 사용하는 공유 변수가 존재한다. 여러 쓰레드가 모두 변수의 값을 read만 하는 경우에는 문제가 되지 않지만 특정 쓰레드가 변수의 값을 write 하게 되면 동기화 문제가 발생한다. 이를 해결하기 위해 한 쓰레드가 변수를 write 할 때에는 다른 쓰레드가 해당 변수에 접근할 수 없도록 lock 걸어주는 과정이 필요하며 lock부터 unlock 사이의 구간을 임계영역(critical section)이라고 한다. 임계 영역은 해당 영역 내의 명령어를 원자적으로 실행되도록 보장한다. ※ lock 관련 용어 임계영역(critical section) - 공유 자원에 접근해야하는 각 프로세스의 코드 영역으로, 다른 프로세스가 해당 영역을 수행하는 동안 수행되지 않아..