>웹 프론트엔드 >JS 튜토리얼 >JavaScript 이벤트 루프에서 마이크로태스크와 매크로태스크의 차이점은 무엇입니까?

JavaScript 이벤트 루프에서 마이크로태스크와 매크로태스크의 차이점은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-02 12:48:13586검색

What's the Difference Between Microtasks and Macrotasks in the JavaScript Event Loop?

이벤트 루프 컨텍스트에서 마이크로태스크와 매크로태스크의 차이점 이해

JavaScript 이벤트 루프 영역에서 마이크로태스크와 매크로태스크의 개념은 매크로태스크는 비동기 작업 실행을 이해하는 데 중요한 역할을 합니다. 다음은 두 가지 작업 유형의 차이점에 대한 자세한 설명입니다.

마이크로태스크

마이크로태스크는 현재 이벤트 루프 반복 내에서 실행되도록 예약된 작업입니다. 일반적으로 Promises, queueMicrotask 및 MutationObservers와 같은 JavaScript 코드에 의해 트리거됩니다. 마이크로태스크는 전용 마이크로태스크 대기열에서 처리됩니다.

매크로태스크

매크로태스크는 현재 이벤트 루프 주기가 완료된 후 실행되도록 예약된 장기 실행 작업을 나타냅니다. 여기에는 setTimeout, setInterval, setImmediate, requestAnimationFrame, I/O 작업 및 UI 렌더링과 같은 작업이 포함됩니다. 매크로 작업은 별도의 작업 대기열에 저장됩니다.

이벤트 루프 실행 순서

각 이벤트 루프 반복 중에 작업은 다음 순서로 처리됩니다.

  1. 매크로태스크: 단일 매크로태스크 작업 대기열에서 실행됩니다.
  2. 마이크로 작업: 현재 마이크로 작업 실행 중에 동적으로 추가되었더라도 사용 가능한 모든 마이크로 작업은 예약된 순서대로 실행됩니다.
  3. 다음 매크로태스크: 작업 대기열의 다음 매크로태스크는

이 주기는 모든 매크로 작업과 마이크로 작업이 처리될 때까지 반복됩니다.

실용적 의미

마이크로 작업과 마이크로 작업의 차이점 매크로태스크에는 실무가 중요합니다 결과:

  • 마이크로 작업을 반복적으로 예약하면 다음 매크로 작업 실행이 차단되어 UI가 지연되거나 I/O가 중단될 수 있습니다.
  • Node.js는 process.maxTickDepth를 통해 차단으로부터 보호합니다. 다음 작업을 처리하기 전에 실행할 수 있는 마이크로 작업 수를 제한합니다. 매크로태스크.

마이크로태스크와 매크로태스크를 사용하는 경우

  • 마이크로태스크: 비동기 작업을 수행해야 할 때 사용하세요. 이벤트 핸들러 직후와 같이 동기식으로 작업 완료됩니다.
  • 매크로 작업: 애니메이션이나 애니메이션과 같은 다른 작업의 실행을 방해하지 않는 장기 실행 작업에 사용하세요. I/O.

매크로태스크:

  • 세트 시간 초과
  • setInterval
  • setImmediate
  • requestAnimationFrame
  • I/O 작업
  • UI 렌더링

마이크로태스크:

  • process.nextTick
  • 프라미스
  • queueMicrotask
  • MutationObservers

위 내용은 JavaScript 이벤트 루프에서 마이크로태스크와 매크로태스크의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.