网络编程演变

整个网络演变过程

一、阻塞IO(BIO)
二、非阻塞IO(NIO)
三、IO多路复用第一版(select/poll)
四、IO多路复用第二版(epoll)
五、信号驱动IO
六、异步IO(AIO)

网络编程演变_第1张图片

网络编程演变_第2张图片

网络编程演变_第3张图片

网络编程演变_第4张图片

网络编程演变_第5张图片

阻塞io是在内核读数据时,却仍没有数据时会阻塞io,有数据且处于就绪态时,从内核态向用户态写数据时也会阻塞io。

网络编程演变_第6张图片

网络编程演变_第7张图片

网络编程演变_第8张图片

网络编程演变_第9张图片

网络编程演变_第10张图片

网络编程演变_第11张图片

网络编程演变_第12张图片

网络编程演变_第13张图片

网络编程演变_第14张图片

网络编程演变_第15张图片

读、写、异常 三个集合

网络编程演变_第16张图片

网络编程演变_第17张图片

网络编程演变_第18张图片

一个数组首地址 +一个数组的元素 构成了动态数组
events是感兴趣要监听的事件
revents是哪些事件就绪会传递到这里

网络编程演变_第19张图片

网络编程演变_第20张图片

网络编程演变_第21张图片

网络编程演变_第22张图片

网络编程演变_第23张图片

惊群效应 一个食物 吸引一群鸽子 只有一个鸽子吃到

网络编程演变_第24张图片

一个epoll对象称为一个reactor. 所有处理都是在一个线程里面

分成io线程和工作线程

mainreactor将收到的任务分给subreactor去处理

你可能感兴趣的:(网络,服务器,运维)