课件和 Demo 地址
https://gitee.com/geektime-geekbang/geek-nodejs
作者回复: 异步一般指的是编程的方式。非阻塞IO是底层机制的名字。我个人平时工作也不会太区分这两个词,反正知道这个概念的人能懂就行。
作者回复: 你分析的点也有道理。其实不管怎么去思考确实总有一个步骤是阻塞的,就正如异步程序最后无论如何还是得进行cpu运算一样。 所以就要宏观点看。我们看的不是写单这个步骤,而是写单+等菜+上菜这个流程。
作者回复: 可以的,底层确实是用线程实现的。只是线程不被暴露出来给开发者控制。
作者回复: 好的,会关掉的!
作者回复: 是
作者回复: 但是在这个比较短的时间过去之后,就已经可以执行其他操作了。而不需要等获取文件完成。 如果只是从处理一个请求的角度来看,这样并不会变快。但是想一想如果是并发处理很多个请求,这样的机制就能节省非常多时间。
作者回复: 同步阻塞的方式更符合人脑的思考方式,出bug的概率也会比较低。
作者回复: 可以的,libuv就是用线程池实现的
作者回复: 从代码上来说如果你把console.timeEnd放在异步操作的回调函数里执行,拿到的就是异步操作运行的时间。 如果只是放在开始执行异步操作的代码下一行,就是你说的情况。
作者回复: 谢谢!