网络
网络分层模型
IO模式
阻塞I/O
普普通通
- 进程发出IO请求后阻塞
- 操作系统完成后,唤醒进程
非阻塞I/O
操作系统不阻塞而是返回结果
- 进程发出IO请求,不阻塞而是继续往下走
- 进程循环查询系统,系统立即返回完成/进行中
特点是用户进程需要不断的主动询问kernel数据好了没有。
I/O多路复用
即一个进程,通过一种机制,可以监听多个 IO 请求,多个 socket
也就是一个方法,同时监听10个连接。当有一个连接准备就绪后,方法就会返回,此时业务可以新起一个线程去处理该就绪连接。
select
仅仅知道有IO事件发生,不知道具体是哪个事件,需要轮询
poll
与select相同,区别在于没有最大连接数的限制
epoll
即event poll,事件驱动。会告知调用时,哪个流发生哪个事件
异步IO
发起 IO 后,进程不阻塞也不再关心。IO 完成时,操作系统主动把数据复制到用户空间并通知进程。
异步指的是:操作系统收到数据并复制到用户空间(即进程接收数据)这个步骤。
其它3种模式,进程接收数据时,均会阻塞。
发布于 2020/08/23
浏览
次