>  기사  >  웹 프론트엔드  >  자바스크립트에는 다중 스레드가 있습니까?

자바스크립트에는 다중 스레드가 있습니까?

WBOY
WBOY원래의
2022-06-15 16:15:113362검색

JavaScript에는 멀티스레딩이 없습니다. JavaScript는 하나의 스레드에서만 순차적으로 실행될 수 있으므로 브라우저의 JavaScript 인터프리터는 단일 스레드이며 JavaScript에 다중 코어가 있어도 멀티스레딩을 지원하지 않습니다. 메인 스레드라는 단일 스레드에서 작업을 실행합니다. 주요 목적은 사용자와 상호 작용하고 DOM을 조작하는 것입니다. 단일 스레드가 아닌 경우 매우 복잡한 동기화 문제가 발생합니다.

자바스크립트에는 다중 스레드가 있습니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

javascript는 멀티 스레드인가요?

javascript에는 멀티 스레드가 없고 JavaScript는 단일 스레드입니다.

브라우저 스크립팅 언어인 JavaScript의 주요 목적은 사용자와 상호 작용하고 DOM을 조작하는 것입니다. 이는 단일 스레드만 가능하다는 것을 결정합니다. 그렇지 않으면 매우 복잡한 동기화 문제가 발생합니다.

스레드는 기본적으로 프로그램이 작업을 완료하는 데 사용할 수 있는 단일 프로세스입니다. 각 스레드는 한 번에 하나의 작업만 실행할 수 있습니다.

Task A --> Task B --> Task C

각 작업은 순차적으로 실행되며 다음 작업이 시작되기 전에 하나의 작업이 완료되어야 합니다.

앞서 언급했듯이 이제 많은 컴퓨터에는 다중 코어가 있으므로 한 번에 여러 작업을 수행할 수 있습니다. 다중 스레드를 지원할 수 있는 프로그래밍 언어는 다중 코어를 사용하여 여러 작업을 동시에 완료할 수 있습니다.

Thread 1: Task A --> Task B
Thread 2: Task C --> Task D

전통적으로 JavaScript는 단일 스레드입니다. 코어가 여러 개인 경우에도 메인 스레드라는 단일 스레드에서만 작업을 실행하도록 할 수 있습니다. 위의 예는 다음과 같이 실행됩니다.

Main thread: Render circles to canvas --> Display alert()

js는 멀티스레드인가요? js 자체는 단일 스레드에서만 실행될 수 있으므로 멀티스레딩을 지원하지 않습니다.

먼저 브라우저에는 최소한 세 개의 스레드가 있습니다: js 엔진 스레드(js 처리), gui 렌더링 스레드(페이지 렌더링), 브라우저 시간 트리거 스레드(제어 상호 작용)

js는 dom 요소를 작동할 수 있기 때문에 이는 gui의 렌더링 결과에 영향을 미칩니다. , 따라서 js 엔진 스레드와 gui 렌더링 스레드는 상호 배타적입니다. 즉, js 엔진 스레드가 작동 상태에 있을 때 gui 렌더링 스레드는 동결됩니다.

js 엔진은 이벤트 중심이며 단일 스레드 실행 메커니즘을 채택합니다. 즉, js 엔진은 작업 목록에서 작업을 순차적으로 가져와서 실행합니다.

【관련 추천: javascript 비디오 튜토리얼, web front-end

위 내용은 자바스크립트에는 다중 스레드가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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