2011-03-02 2 views
0

데이터를 많은 영구 소켓에 보내고 있습니다. 소켓을 따라 데이터를 보내는 다중 스레드를 제안하는 REACTOR 디자인 패턴을 선택했습니다.서버에 다중 스레드가있는 이유

무엇이 더 좋은지 이해할 수 없습니다 : - 하나의 스레드가 모든 데이터를 소켓으로 보내도록하려면 - 또는 소켓을 통해 데이터를 전송하는 두 개의 스레드가 있어야합니다.

내가 보는 방법은 2 개의 코어가 있다는 것입니다. 그래서 나는 한 번에 두 가지 일만 할 수 있습니다. Whcih는 데이터를 보내려면 1 개의 작업자 스레드와 1 개의 스레드가 있음을 의미합니까?

왜 스레드간에 컨텍스트를 전환 할 때 데이터를 보내려면 여러 개의 스레드를 갖는 것이 더 좋을까요?

답변

0

왜 단일 스레드가 아닌지에 대한 thttpd의 문서를 참조하십시오. blocking IO is good. 실제로 그것은 정적 파일에 대해 좋은 의미를 갖습니다.

그러나 CGI를하는 경우 오랜 시간 실행되는 스크립트가있을 수 있습니다. 특히 스크립트에 무한 루프 버그가있어 결국 결국 죽게되는 경우라면 더 빠른 간단한 트래픽을 유지하지 않는 것이 좋습니다! 스레드가있는 사용자가 경험 한 평균 응답 시간은 - 요청 중 일부가 매우 많은 시간이 소요될 경우 더 좋습니다.

제공되는 파일이 디스크에서 가져오고 이미 주 메모리에없는 경우 유사한 인수를 사용할 수 있습니다.

관련 문제