더북(TheBook)

2.2.1 동시에 다수 요청을 다루기

서버 애플리케이션을 작성할 때 일반적으로 한 번에 둘 이상의 클라이언트에 서비스를 제공해야 한다. 모든 연결이 정확히 같은 밀리초에 도착하지 않더라도 데이터베이스에서 읽거나 하드 드라이브에서 파일을 여는 데는 시간이 걸린다.

각 프로세스가 완전히 끝날 때까지 기다리면서 수백, 아니 수천 개의 다른 요청이 대기하고 쌓이게 하는 대신 프로세스(예를 들어 데이터베이스 쿼리)를 트리거하고, 완료되면 알림을 받는 쪽을 선택할 수 있다. 그동안 다른 고객에게 서비스를 제공할 수 있다.

그린 스레드

비동기 프로그래밍을 논할 때 스레드는 항상 거론된다. 스레드는 프로세스에 의해 생성(재생성)되고 프로세스 내부에 존재한다. 보통 운영체제(커널 내부)에서 처리하므로 (커널의 지속적인 중단으로 인해) 사용자 관점에서 관리하는 데 비용이 많이 든다.

그래서 그린 스레드(http://mng.bz/nemK)라는 개념이 나왔다. 그린 스레드는 완전히 사용자 공간에 상주하며 런타임에 의해 관리된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.