异步IO的优势

今天主要在这里分享一下异步I/O的优势。
要说异步IO的优势,那么我们先来看看同步I/O。首先使用同步I/O时,面对性能问题,传统的做法都是使用多线程的方式去解决,但是多线程的引入在业务逻辑层会造成很多麻烦。另外操作系统调度多线程的上下文开销,以及编程中的各种锁,同步问题,让人应接不暇。

NodeJs则利用JavaScript及其内部的异步库,将异步直接提升到业务层面,这是一种创新。
NodeJs的灵魂所在是基于事件驱动的非阻塞I/O模型。非阻塞I/O可以使CPU与I/O并不相互依赖等待,让资源得到更好的利用。对于网络应用而言,并行带来的想象空间更大,延展而开的是分布式和云。并行使得各个单点之间能够更有效的组织起来,这也是Node在云计算厂商中广受青睐的原因。

我的理解,异步IO其实是任务的一种更好的分配方式,因为绝大多数场景下,我们更期待于任务完成时告诉我,而不是我等着任务完成。

异步I/O的调用示意图如下:

异步IO

同步I/O的调用示意图如下:


同步IO

所以在使用异步I/O时我们应当先明确其优点,这样在编码过程中代码才能体现出异步编程的思想。

你可能感兴趣的:(异步IO的优势)