찾다
웹 프론트엔드프런트엔드 Q&Anodejs 이벤트 루프의 단계는 무엇입니까?
nodejs 이벤트 루프의 단계는 무엇입니까?Nov 12, 2021 pm 02:45 PM
nodejs이벤트 루프

nodejs 이벤트 루프 단계: 1. 타이머 단계 2. 대기 중인 콜백 단계 4. 폴링 단계 6. 콜백 단계 종료

nodejs 이벤트 루프의 단계는 무엇입니까?

이 튜토리얼의 운영 환경: windows7 시스템, nodejs 버전 12.19.0, DELL G3 컴퓨터.

nodejs 이벤트 루프

Node.js가 시작되면 이벤트 루프가 초기화됩니다. 각 이벤트 루프에는 6개의 주기 단계가 포함됩니다. nodejs 시간 루프는 브라우저 이벤트와 완전히 다릅니다.

nodejs 이벤트 루프의 단계는 무엇입니까?
참고: 그림의 각 상자를 연습 주기의 단계라고 하며, 이 6단계는 이벤트 주기입니다.

단계 요약

  • 타이머(타이머): 이 단계는 setTimeout()setInterval()에 의해 예약된 콜백 함수를 실행합니다.
  • 보류 중인 콜백(I/O 콜백): 이 단계에서는 close callbackstimerssetImmediate()에 의해 예약된 기능을 제외한 거의 모든 콜백 기능이 실행됩니다.
    setImmediate는 대략 setTimeout(callback, 0)
  • idle(idle), prepare: 이 단계는 내부적으로만 사용됩니다.
  • poll: 새로운 I/O 이벤트를 검색합니다. 적절한 경우 노드가 이 단계에서 차단됩니다.
  • check(체크): setImmediate()에 의해 설정된 콜백이 이 단계에서 호출됩니다.
  • close 콜백: 이 단계에서는 소켓.on('close',…)과 같은 콜백이 호출됩니다.

각 이벤트 루프 실행 사이에 Node.js는 비동기 I/O 또는 타이머를 기다리고 있는지 확인하고 그렇지 않으면 자동으로 종료됩니다.

이벤트 루프가 폴링 단계에 들어가고 코드가 타이머를 설정하지 않으면 다음과 같은 일이 발생합니다.

  • 폴링 대기열이 비어 있지 않으면 이벤트 루프는 대기열이 비어 있을 때까지 대기열에서 콜백을 동기적으로 실행합니다. 비어 있거나 실행된 콜백이 시스템 상한에 도달합니다.
  • 폴 큐가 비어 있으면 다음과 같은 일이 발생합니다.
    - 코드가 setImmediate()에 의해 콜백으로 설정된 경우 이벤트 루프가 폴 단계로 이어집니다. 확인 단계로 들어가서 확인 단계 대기열을 실행합니다(확인 단계의 대기열은 setImmediate에 의해 설정됨).
    - 코드가 setImmediate(콜백)을 설정하지 않으면 이벤트 루프는 이 단계에서 차단되고 콜백이 폴 큐에 합류할 때까지 기다린 후 콜백이 도착하면 즉시 실행됩니다.

이벤트 루프가 폴 단계에 들어가고 코드가 타이머를 설정하는 경우:

  • 폴 큐가 빈 상태(즉, 폴 단계가 유휴 상태)에 들어가면 이벤트 루프는 타이머를 확인합니다. 타이머 시간이 도달하면 이벤트 루프는 루프 시퀀스의 타이머 단계에 들어가고 타이머 큐를 실행합니다.

【추천 학습: "nodejs tutorial"】

위 내용은 nodejs 이벤트 루프의 단계는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Vercel是什么?怎么部署Node服务?Vercel是什么?怎么部署Node服务?May 07, 2022 pm 09:34 PM

Vercel是什么?本篇文章带大家了解一下Vercel,并介绍一下在Vercel中部署 Node 服务的方法,希望对大家有所帮助!

node.js gm是什么node.js gm是什么Jul 12, 2022 pm 06:28 PM

gm是基于node.js的图片处理插件,它封装了图片处理工具GraphicsMagick(GM)和ImageMagick(IM),可使用spawn的方式调用。gm插件不是node默认安装的,需执行“npm install gm -S”进行安装才可使用。

火了!新的JavaScript运行时:Bun,性能完爆Node火了!新的JavaScript运行时:Bun,性能完爆NodeJul 15, 2022 pm 02:03 PM

今天跟大家介绍一个最新开源的 javaScript 运行时:Bun.js。比 Node.js 快三倍,新 JavaScript 运行时 Bun 火了!

nodejs中lts是什么意思nodejs中lts是什么意思Jun 29, 2022 pm 03:30 PM

在nodejs中,lts是长期支持的意思,是“Long Time Support”的缩写;Node有奇数版本和偶数版本两条发布流程线,当一个奇数版本发布后,最近的一个偶数版本会立即进入LTS维护计划,一直持续18个月,在之后会有12个月的延长维护期,lts期间可以支持“bug fix”变更。

聊聊Node.js中的多进程和多线程聊聊Node.js中的多进程和多线程Jul 25, 2022 pm 07:45 PM

大家都知道 Node.js 是单线程的,却不知它也提供了多进(线)程模块来加速处理一些特殊任务,本文便带领大家了解下 Node.js 的多进(线)程,希望对大家有所帮助!

node爬取数据实例:聊聊怎么抓取小说章节node爬取数据实例:聊聊怎么抓取小说章节May 02, 2022 am 10:00 AM

node怎么爬取数据?下面本篇文章给大家分享一个node爬虫实例,聊聊利用node抓取小说章节的方法,希望对大家有所帮助!

深入浅析Nodejs中的net模块深入浅析Nodejs中的net模块Apr 11, 2022 pm 08:40 PM

本篇文章带大家带大家了解一下Nodejs中的net模块,希望对大家有所帮助!

怎么获取Node性能监控指标?获取方法分享怎么获取Node性能监控指标?获取方法分享Apr 19, 2022 pm 09:25 PM

怎么获取Node性能监控指标?本篇文章来和大家聊聊Node性能监控指标获取方法,希望对大家有所帮助!

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구