gpt4 book ai didi

multithreading - 掌握 Node JS 的多线程替代方案

转载 作者:IT老高 更新时间:2023-10-28 21:46:19 30 4
gpt4 key购买 nike

如果我理解正确,Node JS 是非阻塞的......所以它不是等待来自数据库或其他进程的响应,而是转移到其他东西并稍后再检查。

它也是单线程的。

这是否意味着给定的 Node JS 进程可以充分有效地利用单个 CPU 内核,但不会使用机器上的任何其他内核,例如,它一次永远不会使用多个内核。

这当然意味着其他 CPU 仍然可以被其他进程用于 SQL 数据库或其他有意分离的 CPU 繁重的子例程,只要它们是一个单独的进程。

此外,如果 Node JS 进程具有无限循环或长时间运行的函数,则该进程在任何情况下都不再有用,直到无限循环或长时间运行的函数停止(或整个进程终止)。

这一切都好吗?我的理解正确吗?

最佳答案

非常正确,是的。 node.js 服务器有一个内部线程池,因此它可以执行阻塞操作,并在事情完成时通过回调或事件通知主线程。

所以我想它会限制使用线程池的另一个内核,例如,如果您执行非阻塞文件系统读取,这可能是通过告诉线程池中的线程执行读取和设置来实现的完成后的回调,这意味着读取可能发生在不同的线程/核心上,而主 node.js 程序正在执行其他操作。

但从 node.js 的角度来看,它完全是单线程的,不会直接使用多个内核。

关于multithreading - 掌握 Node JS 的多线程替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5200821/

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