节点js中的并行执行

时间:2013-08-14 07:12:35

标签: node.js asynchronous

我有三个功能。就像下面给出的样本一样。

function1 {

  // Do some validation

}
function2 {

 // Do some read and write operations in DB

}
function3 {

 // Do some parallel task

}

如何在nodejs中并行执行所有三个函数。提前致谢。

2 个答案:

答案 0 :(得分:3)

您可以使用fork,如上面的评论所示,或者更容易使用caolan中的异步包。

答案 1 :(得分:1)

这取决于功能的作用。

如果它们都使用异步I / O,您只需调用它们,这样每个都可以启动I / O,它将并行运行。

function1();
function2();
function3();
  

注意:如果您需要协调完成,那么您需要查看flow controlasyncq库。

但是,如果它们中的任何一个是同步的,那么它会变得更加棘手。您需要在它们周围引入异步I / O.这可以通过clusterschild_process来完成,以启动多个node进程。

但是,单靠JavaScript无法完成。 JavaScript仍然是Node的单线程,因此同步任务将阻止其他JavaScript代码执行。只能通过使用native C/C++ binarieslibuv来实现异步I / O.