首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >掌握多线程的Node JS替代方案

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

Stack Overflow用户
提问于 2011-03-05 08:43:27
回答 2查看 65.6K关注 0票数 147

如果我理解正确的话,Node是非blocking...so的,而不是等待数据库或其他进程的响应,它会转移到其他地方,稍后再进行检查。

它也是单线程的。

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

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

另外,如果Node JS进程有一个死循环或长时间运行的函数,那么在停止死循环或长时间运行的函数(或整个进程被终止)之前,该进程在任何情况下都不再有用。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-05 20:23:39

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

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

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

票数 89
EN

Stack Overflow用户

发布于 2013-12-24 05:10:45

因为这个问题是在两年前提出的。事情变得不同了,或者在Node.JS上有了解决多线程问题的替代方法

根据下面的博客文章,使用传入的“任务”扩展,一些可以直接从其他可用内核中受益。

http://oguzbastemur.blogspot.com/2013/12/multithread-nodejs.html

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5200821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档