1.3.3 기기에 있는 CPU를 모두 활용해야 할 때
2000년 중반까지는 CPU의 실행 속도, 즉 클록 수가 계속 증가했습니다. 하지만 그 이후부터는 CPU의 클록 수 대신 CPU 코어(core) 개수만 증가하고 있습니다. CPU가 처리할 수 있는 기능(예를 들어 특정 수학 연산을 하드웨어에서 직접 한다든지 하는 기능)들만 추가되고 있을 뿐입니다. 정작 제일 중요한 CPU 자체 속도는 증가하지 못했습니다. 현재 CPU 속도는 4GHz 벽을 허물지 못하고 있습니다.
이는 프로그램 개발자 측면에서 즐거운 일이 아닙니다. 기본적으로 스레드는 코어를 하나만 사용합니다. 다시 말해서 싱글스레드 프로그램은 컴퓨터의 CPU 코어 개수와 상관없이 1개만 씁니다. 여러분 서버가 8코어 CPU를 장착했는데, 싱글스레드로 게임 서버를 만든다면 서버는 전체 연산 성능의 1/8만 사용할 것입니다.
실험해 봅시다. 다음 코드는 소수(2, 3, 5, 7처럼 1과 자기 자신을 제외한 나머지 숫자로는 나뉘지 않는 정수)를 찾아내서 출력하는 프로그램입니다.