gpt4 book ai didi

javascript - 为什么无阻塞 Node 减少 I/O 总时间?

转载 作者:行者123 更新时间:2023-12-01 01:42:03 25 4
gpt4 key购买 nike

有一个 Node 教程指出:

node is a no-blocking I/O system. if there were a task consuming time m, another task consumeing time n(m'<'n).then,the total consuming time wound be 'm+n' in a blocking I/O system.but it will be n in node.

但是,由于javascript是单线程语言。我认为即使是任务的所谓事件循环也不会减少时间,对吗?

在幕后,这一切都是因为 Node 使用 C/C++ 多线程来完成此操作吗?

<小时/>

好吧。我主要的困惑是我搞砸了I/O消耗时间包含在javascript计算中。

最佳答案

是的。 JavaScript 是单线程的,但具有非阻塞 IO 实现。上面这行意味着你必须从服务器获取 HTTP 响应,服务器是使用计算机网络接口(interface)的 IO,因此,当 HTTP 响应到来时,线程是空闲的(CPU 上不会发生任何计算,通过意味着你的 CPU 线程是空闲的),因此它可以继续执行其他任务,可能会渲染你的页面。

Javascript 线程挂起的唯一方法是更高的执行率。认为你正在做某种大规模计算。在这种情况下,是的,您的进程被阻止。但这不是 IO(输入或输出)。

所以你对IO非阻塞和CPU线程阻塞感到困惑

关于javascript - 为什么无阻塞 Node 减少 I/O 总时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52309044/

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