发布网友 发布时间:2023-12-01 10:59
共2个回答
热心网友 时间:2024-01-18 16:30
因为JS运行在浏览器中,是单线程的,每个window一个JS线程,既然是单线程的,在某个特定的时刻只有特定的代码能够被执行,并阻塞其它的代码。而浏览器是事件驱动的(Event driven),浏览器中很多行为是异步(Asynchronized)的,会创建事件并放入执行队列中。javascript引擎是单线程处理它的任务队列,你可以理解成就是普通函数和回调函数构成的队列。当异步事件发生时,如mouse click, a timer firing, or an XMLHttpRequest completing(鼠标点击事件发生、定时器触发事件发生、XMLHttpRequest完成回调触发等),将他们放入执行队列,等待当前代码执行完成。
热心网友 时间:2024-01-18 16:30
JavaScript语言本身没有被设计成单线程,最多只能说没有内置多线程支持。SSJS不清楚,但至少CSJS(浏览器)已经开始支持多线程了(WebWorkers)。之前之所以没有,是因为: