首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >节点线程与其他编程语言的比较

节点线程与其他编程语言的比较
EN

Stack Overflow用户
提问于 2019-10-28 21:58:31
回答 1查看 277关注 0票数 0

因为线程对于Node.js来说是新的,如果有人能够将node.js中的线程与其他编程语言(如C++ & Java )进行比较,那将是有益的。请特别回答以下问题。

与其他编程语言(如穿线和node.js )相比,node.js中的C++实现有什么相似之处?

node.js应用程序的最大线程数是多少?

EN

Stack Overflow用户

回答已采纳

发布于 2019-10-28 22:23:15

这是一个相当广泛的主题,人们可以写几个章节的一本书。我会尽量保持在一个相当高的水平,并给你一些事情考虑。

node.js中的线程实现与其他编程语言(如C++和Java )有什么相似之处?

没有太多相似之处。Node.js为每个线程创建一个单独的编程上下文。该编程上下文不共享对主线程或其他线程(如C++或Java )的常规变量的访问。相反,您可以使用某种消息在线程之间进行通信,这会强制访问同步,并需要序列化/复制它们之间传递的数据(除了少数特殊的托管情况)。

在C++中,要访问其他线程可以访问的数据,必须使用互斥对象之类的工具来防止争用条件。这种类型的编程对于强大的、有纪律的开发人员来说是非常可行的,他们拥有良好的设计和对细节的高度重视,但是在C++中使用线程代码很容易出错,这会导致很难找到bug。由于node.js强制限制访问并通过消息强制同步,因此通常不会暴露于相同类型的潜在问题中。

node.js应用程序的最大线程数是多少?

据我所知,node.js应用程序中的线程数量没有编码限制。与任何语言一样,每个线程都会消耗资源,而给定的系统配置和使用配置将有一定的实际限制。但是,这只能通过对给定情况的测试和尝试和错误来确定。如果您正在考虑一个有大量线程的node.js应用程序,那么您可能对node.js体系结构进行了错误的设计,因为对于异步I/O模型来说,这通常不是必要的或最优的。

如果您只打算运行所有具有非常CPU密集型操作的线程,那么运行更多线程的性能或吞吐量优势将不会超过拥有CPU内核(或通过超线程处理的线程),而且实际上,由于任务切换的开销增加,运行更多线程可能会有不利之处。在使用node.js集群和决定在同一主机上运行多少集群实例时,这是相同的讨论。

而且,对于任何多线程设计,您都必须充分了解瓶颈所在。如果每个人都在访问并依赖于同一个数据库(例如),您可能会发现,只有两个线程足以使数据库完全繁忙。

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58598927

复制
相关文章

相似问题

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