【问题标题】:How can I use multi threading in node js?如何在节点 js 中使用多线程?
【发布时间】:2018-07-22 19:44:58
【问题描述】:

我有一个程序,我希望该程序可以为多个用户使用不同的密码。如何使用 node js 解决这个问题? 我使用 instagram-private-api 并想登录多个帐户。

【问题讨论】:

  • 首先,node.js 不执行多线程 Javascript(嗯,它刚刚在 node v10 中开始,但这并不是您真正需要的)。如果你只是在做网络,由于 node.js 的异步和非阻塞设计,你可以同时处理许多不同的请求。这就是 node.js 如何扩展到只有一个线程的大型部署。如果您确实需要涉及多个 CPU,那么您将启动多个 node.js 进程并将不同的工作传递给每个进程。

标签: node.js multithreading instagram-api


【解决方案1】:

我认为你错过了节点 js 的要点。许多其他语言使用线程(C#、java、c++ 等)的原因是所有编写的代码都是同步的。相反,它逐行执行。直到第 9 行结束,第 10 行才会执行。但是,这并不是说它们没有异步实现。现在有一些方法可以用这些语言编写异步语法,但一般来说,它们大多都是同步的。

输入 javascript 和 nodejs 平台。其中 95% 是异步的(95% 是总的猜测,更多的是比喻,但有“同步”功能......应该很少使用,通常只是避免使用)。因此节点使用“单线程”,但围绕称为事件循环的东西进行操作。这里不打算详细介绍,但是您可以在 Google 上搜索事件循环是什么以及它是如何工作的……其他人会比我更好地解释它。因此,由于这种设计以及异步特性,您的 nodejs 应用程序中确实不需要线程。

听起来你需要用 node 弄湿你的脚。拿一些教程之类的。一次处理多个用户很简单,不需要线程。

另外,如果这些都没有意义,那么还请阅读“同步与异步”。

【讨论】:

    【解决方案2】:

    Node js 是单线程语言,但具有异步功能。例如,如果我们在 node js 中使用循环,那么由于 node js 是单线程的,那么在该循环完成之前什么都不能执行,但事实并非如此。我们可以使用异步函数,它会在事件循环中与主线程并行运行。

    【讨论】:

      猜你喜欢
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      相关资源
      最近更新 更多