异步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时我们应当先明确其优点,这样在编码过程中代码才能体现出异步编程的思想。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容