Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js async.parallel如何在具有单个线程的nodejs中工作_Node.js_Asynchronous_Parallel Processing_Event Loop - Fatal编程技术网

Node.js async.parallel如何在具有单个线程的nodejs中工作

Node.js async.parallel如何在具有单个线程的nodejs中工作,node.js,asynchronous,parallel-processing,event-loop,Node.js,Asynchronous,Parallel Processing,Event Loop,nodejs中的异步库提供了许多方法,如并行和并行执行多个调用的时间。既然nodejs是单线程的,并且事件循环一次只能选择一个作业,那么这怎么可能是真正的并行呢 这是否意味着async.parallel不是真正的并行,只是异步的?我知道异步和并行是完全不同的术语。你说得对。它是并发的,而不是并行的。Concurrcy可以在单线程上运行,并提供显著的性能,这就是node.js对事件循环所做的。Read-async.parallel的意思是,它将把作业放入队列中,一个接一个地运行,并让它们按照事件循

nodejs中的异步库提供了许多方法,如并行和并行执行多个调用的时间。既然nodejs是单线程的,并且事件循环一次只能选择一个作业,那么这怎么可能是真正的并行呢


这是否意味着async.parallel不是真正的并行,只是异步的?我知道异步和并行是完全不同的术语。

你说得对。它是并发的,而不是并行的。Concurrcy可以在单线程上运行,并提供显著的性能,这就是node.js对事件循环所做的。Read-async.parallel的意思是,它将把作业放入队列中,一个接一个地运行,并让它们按照事件循环的方式运行。它只是并发承诺一起运行的一种语法糖<例如,code>async.serial放置一个作业并等待它完成(从它的事件周期中完成),然后再放置下一个作业。感谢分享此博客。所以我的理解是async.parallel只有在其内部包含异步代码时才有好处。在循环内调用异步作业和使用async.parallel执行同一作业有什么区别?我希望两者的行为方式相同。
async.parallel
将确保按作业顺序累加结果,并在回调中为您提供结果,并且在任何作业失败时提供异常处理程序-非常类似于承诺的工作方式(并与
Promise.all
一起累加)。在一个循环中进行操作将剥夺这种灵活性,而且您永远无法确定作业何时完成或发生了什么。