说明
在计算机科学中指计算机之间或人与计算机之间的信息交换。比如两台计算机通过网卡进行交互,比如向硬盘写入数据或读取硬盘数据,比如人敲击鼠标键盘等,都是I/O。
具体的参见上面的详细说明。
你这里的I/O一般指进程通过网络或存储介质读取或写入数据。
以写数据为例,如果是阻塞型写入操作,进程要一直等待写结束返回 自己才会进行后面的操作,
但是如果你使用异步I/O,你可以将写请求发送到队列,然后就可以去做其他事情了,写操作会异步进行。
计算机的核心部件是计算单元,即CPU,相对于CPU来说,存储(访问内存)、接口(访问外设)都是I/O。对于CPU来说,如果一个指令需要从内存中读取数据,就涉及I/O操作。CPU会通过多线程、多发射(超标量)等方法在读取数据的空闲时间(这个时间还比较长)执行其他指令。对于操作系统来说,当某个线程访问接口,例如读取鼠标或键盘输入,这个时间都是以ms或更长为单位的,操作系统为了少让CPU空闲,会调度其他线程执行,占用CPU,这就是异步。
例子
举个不太形象的例子,同步I/O就像你在打电话,你只能等一个电话通话结束才能打另一个做另一件事。
但是如果你以邮件的方式沟通,你可以发出一封邮件后去处理另外的事,回头再处理别人回复的邮件,达到和多个人多件事异步沟通和处理。