3.6.1 멀티스레딩
블로킹 I/O의 단점을 극복하는 한 가지 방법은 블로킹 가능성이 있는 각 함수의 호출을 별도의 스레드에서 수행하는 것이다. 앞서 예제에 적용하면 서버를 최소 7개의 스레드로 구성한다. 클라이언트마다 하나씩, 그리고 리스닝 소켓에 하나, 나머지 하나는 게임 시뮬레이션에 쓴다. 그림 3-1에 이 같은 구성에 따른 절차를 묘사했다.
▲ 그림 3-1 멀티스레딩 절차
블로킹 I/O의 단점을 극복하는 한 가지 방법은 블로킹 가능성이 있는 각 함수의 호출을 별도의 스레드에서 수행하는 것이다. 앞서 예제에 적용하면 서버를 최소 7개의 스레드로 구성한다. 클라이언트마다 하나씩, 그리고 리스닝 소켓에 하나, 나머지 하나는 게임 시뮬레이션에 쓴다. 그림 3-1에 이 같은 구성에 따른 절차를 묘사했다.
▲ 그림 3-1 멀티스레딩 절차