按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因此阻塞IO、非阻塞IO、IO服用、信号驱动IO都是同步IO,如果不阻塞,而是操作系统帮你做完IO操作再将结果返回给你,那么就是异步IO。阻塞IO和非阻塞IO的区别在于第一步,发起IO请求是否会被阻塞,如果阻塞直到完成那么就是传统的阻塞IO,如果不阻塞,那么就是非阻塞IO。
Java nio 2.0的主要改进就是引入了异步IO(包括文件和网络)
我们来设想下一个aio框架应该怎么设计。参考非阻塞nio框架的设计,一般都是采用Reactor模式,Reacot负责事件的注册、select、事件的派发;相应地,异步IO有个Proactor模式,Proactor负责 CompletionHandler的派发,查看一个典型的IO写操作的流程来看两者的区别
http://www.iteye.com/topic/472333
分享到:
相关推荐
网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non...
本文主要讲了IO中同步、异步与阻塞、非阻塞的区别。希望对你的学习有所帮助。
介绍了基于系统底层通信技术socket,JAVA IO同步,异步,阻塞,非阻塞;
讲述同步、异步、阻塞、非阻塞的区别,通俗易懂,是我见到的最口语话最清晰的材料,文中比喻恰当,深入浅出。
这篇文章里,简单而且形象的介绍了同步于异步——阻塞与非阻塞的知识。希望可以帮助大家
很多时候我们常常看到同步与异步,阻塞与非阻塞的出现。有的地方直接将同步与阻塞画上了等号。异步与非阻塞画上了等号。事实上这是不对的。同步不等于阻塞,而异步也不等于非阻塞。下面就来仔细的看看同步与异步、...
同步异步,阻塞非阻塞,I/O学习总结的思维导图,需要结合Richard Stevens的书来学习
4种IO模型编程实例: 阻塞IO 无阻塞IO 多路复用IO 异步IO
1. 同步,就是我客户端(c端调用者)调用一个功能,该功能没有结束前,我(c端调用者)死等结果 2. 异步,就是我(c端调用者)调用一个功能,不需要知道该功能结
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统...(4)异步IO(Asynchronous IO):即经典的Proactor设计模式,也称为异步非阻塞IO。 深入浅出介绍这几种模型
socket阻塞与非阻塞,同步与异步 1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步主要针对C端: 同步: 所谓同步,就是在c端发出一个...
9.1 阻塞和非阻塞、同步和异步与 IO 操作 9.2 阻塞 IO 9.2.1 等待队列 9.3 实验 9.3.1 原理图 9.3.2 设备树 9.3.3 驱动
还有另外一种无阻塞IO,即为异步IO,用selectors模块来实现 一、IO多路复用 1、阻塞IO: 不停监听,遇到用户输入时,会一直卡在那里,直到接收了外部数据 2、非阻塞IO: 也可以说是间断监听,过一段时间去监听一次,...
第十一章 异步 IO这里要说的异步 IO 准确的说应该叫“信号驱动的异步 I/O”,也可以成为异步通知。前面两章说的阻塞和非阻塞 IO,他们都是同步 IO,需要
Python 携程_异步IO 08阻塞和await.mp4
常见的IO模型有阻塞、非阻塞、IO多路复用,异,下面这篇文章主要给大家介绍了关于golang将多路复异步io转成阻塞io的方法,文中给出了详细的示例代码,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
Icicle - 具有协同程序,非阻塞I / O和多线程的异步库,一个PHP库,用于使用同步编码技术来编写异步代码
使tornado支持调用阻塞IO时不阻塞,将阻塞调用异步化,并可以直接使用coroutine风格的写法,同时使用greenify对原来使用C写的库IO异步化
linux io模型,区分阻塞非阻塞同步异步的概念,从底层理解io。