There is no multi-threading in JavaScript; JavaScript can only be executed sequentially in one thread, so the JavaScript interpreter in the browser is single-threaded and does not support multi-threading; even if JavaScript has multiple cores, It can only be made to run tasks on a single thread called the main thread. Its main purpose is to interact with the user and operate the DOM. If it is not single-threaded, it will cause very complex synchronization issues.
The operating environment of this tutorial: Windows 10 system, JavaScript version 1.8.5, Dell G3 computer.
Javascript does not have multi-threading, JavaScript is single-threaded.
As a browser scripting language, the main purpose of JavaScript is to interact with users and manipulate the DOM. This determines that it can only be single-threaded, otherwise it will cause very complex synchronization problems.
A thread is basically a single process that a program can use to complete tasks. Each thread can only execute one task at a time:
Task A --> Task B --> Task C
Each task will run sequentially; one task must complete before the next can begin.
As mentioned earlier, many computers now have multiple cores and therefore can perform multiple operations at once. Programming languages that can support multiple threads can use multiple cores to complete multiple tasks simultaneously:
Thread 1: Task A --> Task B Thread 2: Task C --> Task D
Traditionally, JavaScript is single-threaded. Even with multiple cores, you can only make it run tasks on a single thread called the main thread. Our above example runs like this:
Main thread: Render circles to canvas --> Display alert()
Does js have multiple threads? There is no doubt that js itself can only run in a single thread, so it does not support multi-threading. Let’s analyze it below:
First of all, there will be at least three threads in the browser: js engine thread (processing js), gui rendering thread (page rendering), browser time trigger thread (control interaction)
Because js can operate dom elements, which in turn will affect the rendering results of the gui, so the js engine thread and the gui rendering thread are mutually exclusive, which means that when the js engine thread is in working state, the gui rendering thread is frozen.
The js engine is event-driven and adopts a single-thread running mechanism, that is, the js engine will only sequentially take tasks from the task list and execute them.
【Related recommendations:javascript video tutorial,web front-end】
The above is the detailed content of Does javascript have multiple threads?. For more information, please follow other related articles on the PHP Chinese website!