Nodejs는 하나의 프로세스 만 사용하여 요청을 처리 한 다음 I/O를 사용하는 해당 기능이 비동기식으로 수행되므로 웹 서버의 효율성이 향상됩니다. 그러나 I/O를 처리하는 프로세스는 중요하지 않습니다. 아파치와 같은 전통적인 웹 서버와 비교할 때, 하나의 스레드에서 모든 요청이있을 때마다 다중 스레드를 사용하여 요청을 처리 할 때 비용 (요청 + 입출력)이 감소합니까?Nodejs의 콜백 메커니즘
답변
예, node.js에는 스레드가 하나만 필요합니다 (운영 체제에 따라 하나의 프로세스를 요구하는 것보다 훨씬 제한적입니다). 그리고 예, 이것은 프로그래밍 요구 사항에 영향을 미칩니다 :
- 프로그램을 차단해서는 안됩니다! 부과 된 스레딩의 벌금에 저장
http://www.manning.com/cantelon/NjsiA_meap_ch01.pdf
Node.js를이 : 당신이 참조 할 수 있습니다 꽤 많은 자원, 예를 들어, Node.js를 그렇게 빠른 이유에있다
컨텍스트 스위칭을 통해 다른 서버에 필요합니다 (Slebetman 참조). 우리는 2004 년에 C++로 자체 서버를 만들었습니다. 고성능 요구 사항 때문에 서버가 많은 연결을 열고 닫아야 할 때이 방법은 실제로 많은 자원을 절약합니다.
질문에 누락 된 부분은 node.js가 O/S에 오랜 시간이 걸리고 답변과 함께 다시 호출되는 작업을 손수 처리한다는 것입니다. O/S는 완전 멀티 프로세스입니다. 따라서 node.js는 제어를 위해 하나의 스레드 만 필요로하지만 I/O는 O/S 프로세스에 의해 제어됩니다.
node.js는 병렬 프로그램을 실행할 수있는 추가 프로세스를 생성 할 수 있습니다.
그건 사실이 아닙니다. 이 질문에 대한 이전 답변을 참조하십시오 : http://stackoverflow.com/questions/3759683/how-node-js-server-is-better-than-thread-based-server/3759991#3759991 – slebetman
이제 더 정확한 답변을 만들었습니다. hth. 나는 이미 다른 게시물을 +1했는데, 고마워. –
- 1. nodejs의 비동기 콜백 처리하기
- 2. 조건 테스트/콜백 메커니즘
- 3. 추가 인수를 nodejs의 콜백 체인으로 전달합니다.
- 4. 콜백 함수에서 응답을 처리하는 방법 (예 : nodejs의 크래들에서 사용)
- 5. nodejs의 소켓
- 6. 메커니즘
- 7. 메커니즘
- 8. NodeJs의 완벽한 채팅 솔루션
- 9. nodeJS의 강점을 보여주는 예제
- 10. package.json-nodejs의 종속성은 무엇입니까
- 11. nodeJS의 영구 변수
- 12. nodejs의 SSL 오류
- 13. nodeJS의 상위 하위 프로세스
- 14. nodejs의 동시성 모델
- 15. nodeJS의 초보자 ... WAMP 사용
- 16. NodeJS의 버퍼 복사 문제
- 17. NodeJS의 nextTick 오류
- 18. nodejs의 익명 오류 mongodb
- 19. Windows 용 nodejs의 SQLite
- 20. nodejs의 사용자 지정 REPL
- 21. nodejs의 geocouch 오류
- 22. NodeJS의 HTTPS 요청
- 23. 배열을 NodeJS의 문자열로 변환하십시오.
- 24. nodejs의 forward proxy
- 25. NodeJS의 배치 특정 파일
- 26. URI를 제공하여 nodejs의 http.get
- 27. nodejs의 하위 도메인
- 28. NodeJS의 libxmljs RangeError
- 29. NodeJS의 문자열 라인 반복
- 30. nodejs의 변수 업데이트
프로그래밍 질문이 아닙니다. –
심각한가요? 어떤 언어의 내부 메커니즘을 모르는 경우 어떻게 잘 프로그램 할 수 있습니까? – qqibrow
가능한 복제본 [node.js 서버가 스레드 기반 서버보다 나은 방법] (http://stackoverflow.com/questions/3759683/how-node-js-server-is-better-than-thread-based-server) – slebetman