如何制作一个需要时间无阻塞的活动?

时间:2014-05-10 09:51:38

标签: multithreading node.js javascript-events nonblocking

我在想 - 因为node.js在单线程中运行,如果我想做一些算法上很困难的计算(hard_and_complex_function()),那与I / O无关但需要很多时间?我可以让它无阻塞吗?与多线程技术相比,这不是一个缺点 - 我可以在一个单独的线程中运行它吗?

2 个答案:

答案 0 :(得分:0)

虽然你对线程是正确的,但你至少有两个选项可以解决你手头的问题:

  1. 使用process.nextTick()在长计算中的适当点处产生CPU。
  2. 使用单独的流程(使用child_processCluster)来执行长时间的计算。
  3. 您可能还希望在将来使用时查看ES6中的生成器和yield

答案 1 :(得分:-1)

有解决方案可用于在Node.js中处理长时间运行的应用程序。看看下面的图书馆:

https://github.com/xk/node-threads-a-gogo