쓰레드란? 프로세스 내 하나의 실행 흐름 단위이다. 각 프로세스는 최소 1개 이상의 쓰레드를 가진다. (만약 그 쓰레드가 1개인 경우, 그 쓰레드를 메인 쓰레드라 한다) 멀티 스레드를 잘 구성한다면, 멀티 프로세스로 구성할 때에 비해 메모리 공유량이 줄어들어 시스템 자원 소모가 줄어든다. Context Switching 에 대한 오버헤드도 줄어든다. 하지만 프로그래머가 골치를 썩일 문제 또한 많은데 그런 예시 중 대표적인게 "은행 계좌 문제", "식사하는 철학자 문제" 이다. 이중 은행계좌 문제로 알 수 있는 건, Critical Section 문제다. 임계구역 문제인데 같은 자원을 서로 다른 쓰레드가 점유하고자 해서 생기는 문제점이다. 이 임계구역 문제를 해결하기 위해선 적절한 실행 흐름 제어가 필요하..