이 글은 Node.js의 이벤트 루프에 대한 간략한 이해를 제공할 것입니다. Node.js 이벤트 루프의 대략적인 순서를 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.
우리 모두는 현재 사용하는 대부분의 애플리케이션이 이벤트 기반이라는 것을 알고 있습니다. 애플리케이션과 상호 작용하는 동안 클릭, 더블 클릭, 삼중 클릭 등과 같은 많은 이벤트가 생성됩니다. 또한 파일 읽기가 완료되거나 특정 작업이 실행될 때 발생하는 많은 이벤트도 있습니다.
우리는 모두 Node.js가 단일 프로세스 및 단일 스레드라는 것을 알고 있지만 이벤트 메커니즘과 분리할 수 없는 높은 동시성을 달성할 수 있습니다. 구체적으로는 이벤트 루프를 통해 구현되며, 비동기 콜백 인터페이스와 이벤트 드라이버를 통해 높은 동시성을 달성할 수 있다. [추천 학습: "nodejs Tutorial"]
Node.js가 단일 스레드에서 실행되는 경우 "dead" 루프에 들어가는 것과 동일하며 각 비동기 이벤트에 대한 콜백 함수는 다음과 같습니다. 휴대폰으로 여자친구를 확인하는 것과 동일합니다. 여자친구가 "나쁜" 일(사건)이 발생하는 것을 알아차리면 당신과 다투게 되며(콜백 함수 호출 - 싸움 기능) 그녀는 이러한 일(사건)을 결코 보지 못할 것입니다. 그러면 나는 당신의 전화기를 보지 않을 것입니다. (무한 루프를 종료하십시오).
이벤트 루프는 일반적으로 처리를 위해 해당 작업을 운영 체제에 넘겨줍니다. 우리 모두는 현재 운영 체제가 기본적으로 멀티 스레드라는 것을 알고 있습니다. 즉, 우리는 Node.js라는 여자 친구가 일반적으로 우리 휴대폰만 보는 것이 아니라 전문 모니터링 팀을 고용하여 휴대폰을 모니터링한다는 것을 알고 있습니다. 이런 방식으로 모니터링 팀의 여러 사람이 귀하의 휴대폰 정보를 확인할 수 있습니다(운영체제 백그라운드에서 처리됨). 일부 정보가 처리되면 여자친구에게 즉시 알림이 전송됩니다(작업이 완료되면 Node.js에서 작업이 완료됩니다.) Node.js는 즉시 알림을 받습니다. 그런 다음 여자친구는 정보의 성격에 따라 수행할 작업을 작업 대기열로 보냅니다(Node.js는 관련 콜백 함수를 폴링 대기열에 추가합니다). 그런 다음 하나씩 실행하십시오.
다음은 Node.js 이벤트 루프의 단순화된 다이어그램입니다.
위 그림에서 각 단계에는 FIFO 실행 가능 콜백 함수의 대기열이 있습니다. 일반적으로 이벤트 루프가 해당 단계 중 하나에 들어가면 해당 단계의 작업이 실행되고, 해당 단계의 큐에 있는 콜백은 큐의 끝까지 또는 콜백 수 제한에 도달할 때까지 실행됩니다. 그 후 이벤트 루프는 다음 단계로 진입하고 앞뒤로 순환하십시오.
이 그림에 따르면 이벤트 루프의 순서는 대략 다음과 같습니다.
데이터 수신(들어오는 데이터)->Poll->확인->콜백 닫기->타이머->보류 중인 콜백 ->유휴, 준비->설문 조사
더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 코스를 방문하세요! !
위 내용은 노드 이벤트 루프의 일반적인 프로세스에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!