五种IO模型
https://www.jianshu.com/p/5257b540c3e5
BIO: accept无限阻塞,直到数据过来,process回调(process从socket等待队列里移除,并加入工作队列,等待os调度)
NIO: 不等待,立即返回;
IO Multiplexing:
select/poll/epoll
select : 将一个process维护进多个socket中,select无限阻塞,直到数据过来,返回一个fd, process回调(process从socket等待队列里移除,并加入工作队列,等待os调度)
epoll:分四个步骤:
epoll_create,
epoll_ctl:维护socket列表
epoll_wait:阻塞进程,类似于accept/select
epoll_close
epoll在内核维护了一个就绪列表runnable_list(当某个socket接收到数据时,将对应的fd加入到该runnable_list中)
当网卡rcv数据时,会触发中断(ROK),
Singal Driven IO
AIO

浙公网安备 33010602011771号