节点中的线程与其他编程语言相比



由于线程是Node.js的新手,如果有人能将Node.js中的线程与其他编程语言(如C++和amp;Java语言请特别回答以下问题?

node.js中的线程实现与其他编程语言(如C++和amp;Java语言

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

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

node.js中的线程实现与其他编程语言(如C++和amp;Java语言

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

在C++中,要访问其他线程可以访问的数据,必须使用诸如互斥锁之类的工具来防止竞争条件。这种类型的编程对于强大、有纪律、设计良好、注重细节的开发人员来说是非常可行的,但C++中的线程代码很容易出错,这可能会导致很难发现的错误。由于node.js强制限制访问并通过消息传递强制同步,因此通常不会出现同样类型的潜在问题。

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

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

如果你只想用CPU密集型的操作来运行所有线程,那么运行比CPU核心(或超线程线程(更多的线程几乎没有性能或吞吐量优势,事实上,由于任务切换的开销增加,运行更多的线程可能会有缺点。当使用node.js集群并决定在同一主机上运行多少集群实例时,这与讨论大致相同。

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

相关内容

最新更新