6.9 스레드 모델
1장에서 우리는 서버 프로세스 하나가 스레드를 여럿 가지는 형태의 서버와 여러 서버 프로세스가 각각 스레드 하나를 가지는 형태의 서버를 살펴보았습니다. 프라우드넷은 이 두 가지에 대한 스레드 모델을 모두 지원합니다.
▲ 그림 6-6 프로세스 하나가 여러 스레드를 가질 때와 여러 프로세스가 각각 스레드 하나를 가질 때
기본값으로 NetServer의 워커 스레드(worker thread)는 CPU 개수만큼 구동됩니다. 다시 말해서 CPU 개수만큼 스레드를 가진 스레드 풀이 기본으로 제공됩니다.
그러나 다음 모든 상황일 때는 이를 권장하지 않습니다.
1. 서버 내부 데이터가 뮤텍스 1개로 보호되는 경우
2. 서버 내부 로직에서 DB나 파일 액세스 등 디바이스 타임(device time)이 없는 경우
3. 서버 프로세스를 여러 개 띄울 수 있게 분산 서버로 개발하는 경우