tik*_*der 15 javascript parallel-processing asynchronous node.js async.js
据我所知到目前为止:Javascript是单线程的.如果您推迟执行某些过程,则只需安排它(将其排队)以在下次线程空闲时运行.但Async.js定义了两种方法:Async::parallel & Async::parallelLimit
和我引用:
并行运行一系列函数,无需等到上一个函数完成.如果任何函数将错误传递给其回调...
与并行相同,只有任务与任何时间执行的最大"限制"任务并行执行.
至于我对英语的理解,当你说:"并行完成任务"意味着同时进行 - 同时进行.
Async.js如何在一个线程中并行执行任务?我错过了什么.
Leo*_*tny 14
Async.js如何在一个线程中并行执行任务?我错过了什么.
parallel
同时运行所有任务.因此,如果您的任务包含I/O调用(例如查询数据库),它们将看起来好像已经并行处理.
如何在单个线程中启用?!这是我无法理解的.
Node.js是非阻塞的.因此,它不是并行处理所有任务,而是从一个任务切换到另一个任务.因此,当第一个任务使I/O调用使其自身空闲时,Node.js只需切换到处理另一个.
I/O任务花费大部分处理时间等待I/O调用的结果.在像Java这样的阻塞语言中,这样的任务在等待结果时阻塞其线程.但是Node.js利用它来处理另一个任务而不是等待.
所以这意味着如果每个任务的内部处理是异步的,则线程被授予此任务的每个位,无论它们中的任何一个是否已经完成,直到所有任务完成它们的位?
是的,几乎就像你说的那样.Node.js开始处理第一个任务,直到它暂停进行I/O调用.在那一刻,Node.js离开它并将其主线程授予另一个任务.因此,您可以说该线程依次被授予每个活动任务.
归档时间: |
|
查看次数: |
4507 次 |
最近记录: |