>웹 프론트엔드 >JS 튜토리얼 >스레드 및 이벤트 루프의 JavaScript 구현에 대한 자세한 설명

스레드 및 이벤트 루프의 JavaScript 구현에 대한 자세한 설명

韦小宝
韦小宝원래의
2018-03-14 16:08:191334검색

이 글에서는 javascript스레드 및 이벤트 루프 구현에 대해 설명합니다. 자바스크립트의 스레드 및 이벤트 루프 구현에 대해 모르거나 자바스크립트의 스레드 및 이벤트 루프 구현에 관심이 있다면 이 글을 함께 살펴보겠습니다. . 알았어 헛소리는 그만하고 본론으로 들어가죠

1. JavaScript가 단일 스레드라고 하는 이유는 무엇입니까?

브라우저 렌더링 프로세스에 관련된 여러 스레드는 다음과 같습니다: js 코드 실행을 담당하는 JavaScript 실행 스레드, UI 표시를 담당하는 UI 스레드, JavaScript 이벤트 루프 스레드, 관리

JavaScript 이벤트 , JavaScript 실행 스레드와 UI 스레드는 상호 배타적입니다. JavaScript가 멀티 스레드인 경우 버튼을 빨간색과 노란색으로 바꾸는 등 여러 JavaScript 실행 스레드가 동일한

을 작동하면 UI 스레드가 혼란스러워집니다. 이때, 누구의 말을 들어야 할까요? JavaScript에서는 이러한 상황을 피하기 위해 이러한

스레드를 별도로 실행해야 하므로 JavaScript는 단일 스레드이므로 언어의 핵심 특성은 변하지 않습니다. 미래에.

2. JavaScript 작업 대기열 구조 및 이벤트 루프

단일 스레드는 모든 작업을 대기열에 넣어야 하며 다음 작업이 실행되기 전에 이전 작업이 종료된다는 의미입니다. 이전 작업이 오래 걸리면 다음 작업은

계속 기다려야 합니다.

JavaScript의 실행 작업은 아래와 같이 대기열 데이터 구조의 형태로 실행됩니다.


JavaScript의 작업: 1. 동기화 작업 :for 루프

, 합산, js 할당, js 작업 등

2. 비동기 작업: dom 이벤트, bom api 처리 ajax

소위 "콜백 함수

" (콜백) - 메인 스레드에 의해 중단될 코드입니다. 비동기 작업은 콜백 함수를 지정해야 합니다. 메인 스레드가 비동기 작업 실행을 시작하면

는 해당 콜백 함수를 실행합니다.

루프 메커니즘:

JavaScript 메인 스레드는 동기 작업을 직접 실행하고, 비동기 작업은 그 중 일부를 먼저 실행한 다음

exit

메인 스레드 실행을 수행하고, 비동기 작업을 메인 스레드에 넘기기 전에 준비될 때까지 기다립니다. 실행용 스레드,간단히 말하면 자바스크립트 코드는 큐 형태로 하나씩 실행되며, 동시에 한 개의 코드만 실행될 수 있습니다.

위 내용이 이 글의 전부입니다. 당신은 그것에 대해 많이 알지 못합니다. 이벤트 루프 등을 작성해 볼 수 있습니다. 이렇게 하면 쉽게 익힐 수 있습니다!

관련 추천:



JavaScript 이벤트 루프 메커니즘 자세히 설명 - 1강

JavaScript 이벤트 루프 메커니즘 자세히 설명 - 2강

JavaScript 자세한 설명 이벤트 루프 메커니즘 예

위 내용은 스레드 및 이벤트 루프의 JavaScript 구현에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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