gpt4 book ai didi

JavaScript 和单线程

转载 作者:数据小太阳 更新时间:2023-10-29 05:48:46 25 4
gpt4 key购买 nike

我总是听说 JavaScript 是单线程的;当 JavaScript 被执行时,它都在同一个全局 mosh 坑中运行,都在一个线程中。

虽然这可能是真的,但单个执行线程可能会产生新线程,异步将数据返回主线程,对吗?例如,当发送 XMLHttpRequest 时,浏览器是否会创建一个新线程来执行 HTTP 事务,然后在 XMLHttpRequest 返回时在主线程中调用回调?

定时器——setTimeout 和 setInterval 怎么样?这些是如何工作的?

这种单线程是语言的结果吗?在新的 Web Workers 草案之前,是什么阻止了 JavaScript 的多线程执行?

最佳答案

XMLHttpRequest,值得注意的是,不会阻塞当前线程。但是,任何规范都没有概述其在运行时中的细节。它可以在单独的线程中或在当前线程中运行,利用非阻塞 I/O。

setTimeoutsetInterval 设置计时器,当运行到零时,添加一个要执行的项目,一个函数/回调的代码行,到执行堆栈,如果代码执行已停止,则启动 JavaScript 引擎。换句话说,它们告诉 JavaScript 引擎在它完成当前正在做的事情之后做一些事情。要查看实际效果,请在一个方法中设置多个 setTimeout(s) 并调用它。

关于JavaScript 和单线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7974184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com