0

node.js对它非常陌生,它使用的基于异步事件循环的执行模式以及它在实时 Web 应用程序中可以实现的结果给我留下了深刻的印象。我知道由于node.js是单线程的,它可以利用多核 CPU 可用的并行性的唯一方法是为每个内核生成一个新实例(for 使用的方法Clusternode.js,我认为这不是真正的并行性。但是现在我对另一个问题感兴趣:

假设我有这样一种设置,我在每个可用的 CPU 内核中运行一个实例,我如何有效地确保应用程序使用的独占锁不会导致任何饥饿?非常感谢要遵循的准则、最佳实践(如果有)以及在此问题上的任何其他帮助。提前致谢。

4

1 回答 1

1

我同意你的说法。但是并发而不是真正的并行是节点开发人员的目标。真正的并行性是 Apache 服务器实现的,我们知道其中的问题(多线程)。添加了集群以利用可用的多核 CPU。

要回答您的问题,节点使用循环调度程序(请参阅此提交)。它将传入的请求一个接一个地分发给每个工作人员。关于锁定,如果工人并行运行,他们将得到最好的利用。在服务器中,每个工作人员的功能都独立于其他工作人员。如果您需要锁定,请确保它们不会闲置。

于 2013-11-05T13:37:05.317 回答