说nodejs的回调,得先说关于nodejs的相关的几个重要概念:同步,异步,阻塞,非阻塞。
同步和异步:
同步和异步是一种“现象”,这种现象的表现在自己“编写的主程序”无停顿执行或有停顿执行,程序耗时是(m+n)还是max(m+n)。
阻塞和非阻塞:
阻塞和非阻塞是一种“事实”,体现为一段主调用序是挂起还是一直等待另外的系统调用完成。
总结
阻塞的程序有可能体现外异步,也有可能体现为同步。非阻塞的程序已定体现为异步。nodejs所宣传的异步单线程程序也只是我们所写的代码看上去是异步单线程程序。真是情况是node的执行环境其实是多线程的,这个多线程的执行环境在保证我们代码的异步执行。