노드를 지휘관으로 생각하면 차단없이 작업 모니터링을 처리합니다. 따라서 노드가 다중 스레드 일 필요는 없다고 생각하면 대기 시간없이 작업을 실행하므로 아무 것도 차단되지 않으므로 새 스레드를 작성할 필요가 없습니다.
당신의 의견에이 소켓에 대해 언급하고 있습니다. Node는 데이터에 대한 TCP/UDP 연결을 모니터링하는 네트워크 스레드를 가지고 있습니다. 패킷을 수신하면 노드 패킷에이 패킷에 대해 수행 할 작업을 묻습니다. , 즉시이 새로운 패킷을 응답으로 보내도록 네트워크 스레드에 알린 다음 네트워크 스레드가 그 다음 이벤트가 호출되는 동안 그렇게합니다. 때 단지 콜백을 사용
,이 Node.js를에서
를 설명해야 다음 이미지 및 단락에서보세요, 당신은 백엔드에서 일어나는 일에 대해 걱정 안된다 I/O를 수행하고 있습니다. 코드가 중단되지 않고 I/O를 수행해도 요청 당 스레드/프로세스 비용 (예 : Apache의 메모리 오버 헤드)이 발생하지 않으면 서 다른 요청을 차단하지 않습니다.
I/O가 대부분의 코드보다 비싸고 I/O를 기다리는 것보다 더 나은 작업을 수행해야하기 때문에 비동기 I/O를 사용하는 것이 좋습니다.
이벤트 루프 "처리하고 외부 이벤트를 처리하는 콜백 호출로 변환하는 엔티티"
이다. 따라서 I/O 호출은 Node.js가 한 요청에서 다른 요청으로 전환 할 수있는 지점입니다. I/O 호출에서 코드는 콜백을 저장하고 node.js 런타임 환경으로 제어를 반환합니다. 콜백은 데이터가 실제로 사용 가능할 때 나중에 호출됩니다.
출처 : http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/
이 나를 완전히 백 엔드 아키텍처에 무슨 일이 있었는지 이해가 만든 첫 번째 기사였다 그 기사를 읽어 보시기 바랍니다.
내가 무엇을 요구하는지 잘 모르겠습니까? 노드는 브라우저처럼 단일 스레드입니다. 두 개의 요청을 동시에 보낼 수있는 클라이언트는 하나의 스레드 만 있으면 어떻게 될까요? – loganfsmyth
귀하의 권리를 추측합니다. 결국 노드는 싱글 스레드입니다. 그냥 스레드를 사용하지 않고 소켓에 코드를 사용하지 않습니다. 병이 아프다고 먼저 노드를 시도해야합니다. 예, 두 명의 고객이 동시에 요청을 보내는 방법은 무엇입니까? –