异步I/O异步I/O与非阻塞I/O从计算机内核I/O而言,同步/异步和阻塞/非阻塞是两个不同的概念。操作系统内核对于I/O只有两种方式,阻塞和非阻塞。阻塞I/O的特点是调用之后一定要等到系统内核层面完成所有操作后,调用才结束,阻塞I/O造成了CPU等待I/O,浪费了CPU的处理能力。非阻塞I/O与阻塞I/O的区别是调用之后会立即返回。非阻塞I/O返回后,CPU可以用来处理其他事情,此时性能提升是明显的。非阻塞I/O返回时,并没有获取到完整的数据,应用程序需要重复调用I/O操作来确认是否完成,这种重复调用判断操作是否完成的技术叫做轮询。阻塞I/O造成CPU等待浪费,非阻塞I/O需要轮询判断数据是否获取完毕,也会浪费CPU资源。现存的轮询技术主要有:read 它是最原始,性能最低的一种,通过重复调用来检查I/O的状态来完成数据的读取。在得到数据之前CPU一直耗在等待上。selectpollepollkqueue