运行代码同步或异步的区别

您可能听说过Node.js之所以快是因为它为所有昂贵的操作(如网络访问或文件系统)提供了异步API。

拥有异步API意味着什么呢?

如果你预计某个操作可能需要很长时间,那么以异步方式运行它是有意义的,这样其他代码可以同时运行,并且在操作结束时有一个钩子被调用。

这就是为什么Node.js可以处理比PHP或Rails更多的流量而不使用异步库的原因。

大多数传统上不是异步的编程语言现在都有第三方库来实现调用异步代码的方式。

否则,例如在PHP或Python代码中通常会发生的情况是,线程会阻塞,直到同步操作(从网络读取、写入文件等)结束。

如果代码以异步方式运行,CPU不会空闲等待该进程完成,而是可以继续执行其他已排队的任务,直到原始进程准备好继续进行为止。