프로그램을 실행하면 주 실행 스레드를 생성하는 프로세스가 생성된다. 주 실행 스레드를 포함해 어떤 스레드이든 언제든지 자식 스레드를 만들 수 있다(결과에서 스레드 수가 6으로 나오는 이유다). 여기서는 새로운 스레드 다섯 개를 만들어 이들을 동시 실행했다.
프로세스와 스레드는 동시성의 재료와도 같다. 여러분이 스레드나 프로세스 중 무엇을 다루더라도 이들을 스레드로 간주할 수 있다. 모든 프로세스는 최소한 하나의 스레드를 갖기 때문이다. 이 책의 뒷부분에서는 구현 형태를 구분할 필요가 없는 일반적인 의미로써 작업이라는 용어를 사용할 것이다.
지금쯤이면 동시성을 구현한다는 것이 그리 만만한 일이 아님을 깨달았을 것이다. 지금까지 네 개의 장을 읽으면서 그 어려움을 조금 살펴보았다. 여기까지 책을 읽었다면 과연 내가 동시성을 제대로 구현할 수 있을지 의심스러울 것이다. 여기서 잠시 의욕을 북돋고 가도록 하자.
털실 바구니에 들어간 아기 고양이들을 상상해보라. 아기 고양이들은 호기심과 도전 정신으로 가득차 있다.