2012-11-01 3 views
0

Nodejs는 하나의 프로세스 만 사용하여 요청을 처리 한 다음 I/O를 사용하는 해당 기능이 비동기식으로 수행되므로 웹 서버의 효율성이 향상됩니다. 그러나 I/O를 처리하는 프로세스는 중요하지 않습니다. 아파치와 같은 전통적인 웹 서버와 비교할 때, 하나의 스레드에서 모든 요청이있을 때마다 다중 스레드를 사용하여 요청을 처리 할 때 비용 (요청 + 입출력)이 감소합니까?Nodejs의 콜백 메커니즘

+0

프로그래밍 질문이 아닙니다. –

+0

심각한가요? 어떤 언어의 내부 메커니즘을 모르는 경우 어떻게 잘 프로그램 할 수 있습니까? – qqibrow

+0

가능한 복제본 [node.js 서버가 스레드 기반 서버보다 나은 방법] (http://stackoverflow.com/questions/3759683/how-node-js-server-is-better-than-thread-based-server) – slebetman

답변

0

예, node.js에는 스레드가 하나만 필요합니다 (운영 체제에 따라 하나의 프로세스를 요구하는 것보다 훨씬 제한적입니다). 그리고 예, 이것은 프로그래밍 요구 사항에 영향을 미칩니다 :

- 프로그램을 차단해서는 안됩니다! 부과 된 스레딩의 벌금에 저장

http://www.manning.com/cantelon/NjsiA_meap_ch01.pdf

http://nodejs.org/about/

Node.js를이 : 당신이 참조 할 수 있습니다 꽤 많은 자원, 예를 들어, Node.js를 그렇게 빠른 이유에있다

컨텍스트 스위칭을 통해 다른 서버에 필요합니다 (Slebetman 참조). 우리는 2004 년에 C++로 자체 서버를 만들었습니다. 고성능 요구 사항 때문에 서버가 많은 연결을 열고 닫아야 할 때이 방법은 실제로 많은 자원을 절약합니다.

질문에 누락 된 부분은 node.js가 O/S에 오랜 시간이 걸리고 답변과 함께 다시 호출되는 작업을 손수 처리한다는 것입니다. O/S는 완전 멀티 프로세스입니다. 따라서 node.js는 제어를 위해 하나의 스레드 만 필요로하지만 I/O는 O/S 프로세스에 의해 제어됩니다.

node.js는 병렬 프로그램을 실행할 수있는 추가 프로세스를 생성 할 수 있습니다.

+1

그건 사실이 아닙니다. 이 질문에 대한 이전 답변을 참조하십시오 : http://stackoverflow.com/questions/3759683/how-node-js-server-is-better-than-thread-based-server/3759991#3759991 – slebetman

+0

이제 더 정확한 답변을 만들었습니다. hth. 나는 이미 다른 게시물을 +1했는데, 고마워. –