一、并发、并行、同步、异步、阻塞、非阻塞
1、并发是指一个时间段内,有几个程序同时在一个cpu上运行,但任意一时刻只有一个程序在cpu上运行
2、并行是指任意一时刻点上,有多个程序同时运行在多个cpu上
3、同步是指代码调用IO操作时,必须等待IO操作完成才返回的调用方式
4、异步是指代码调用IO操作时,不必等待IO操作完成就返回的调用方式
5、阻塞是指调用函数的时候当前线程被挂起
6、非阻塞是指调用函数的时候当前函数不会被挂起,而是立即返回
二、Unix下的五种I/O模型
1、阻塞I/O
2、非阻塞I/O
3、I/O复用
4、信号驱动I/O (不常用)
5、异步I/O
详解链接————五种IO模型
三、多路复用(select\poll\epoll)
基本上select有3个缺点:
- 连接数受限
- 查找配对速度慢
- 数据由内核拷贝到用户态
poll改善了第一个缺点
epoll改了三个缺点.