Node.js的阻塞与非阻塞、同步与异步是什么?( 三 )

如果同步操作可以设置完成而不阻塞线程或导致等待状态 , 则它是非阻塞的 。 大多数情况下 , 同步调用将被阻塞 , 完成所需的时间取决于多种因素 , 例如API服务器的速度 , 最终用户的互联网连接下载速度等 。

对于上图 , 我们不得不等待一段时间才能从API One中检索第一批结果 。 此后 , 我们不得不等待同样的时间来获得API Two的回复 。

在非阻塞调用的情况下 , 我们会有这样的事情:

你可以清楚地看到我们完成执行的速度有多快 , 而不是等待API One然后等待API Two , 我们可以等待它们同时完成并将调用速度提高近50% 。

因此请注意 , 一旦我们调用了API One并开始等待它的响应 , 我们也调用了API Two并开始等待它的同时响应它 。

我们相信通过实验测试之后 , 相信很多人会更加了解阻塞 , 非阻塞 , 和同步 , 异步的使用 。

推荐阅读