2019/6/24
⽹络通信 --> IO多路复⽤之select、poll、epoll详解 - 蚂蚁吃⼤象、 - 博客园
https://www.cnblogs.com/jeakeven/p/5435916.html 1/5
蚂蚁
吃
⼤
象
博
客
园
⾸
⻚
新
随
笔
联
系
管
理
随
笔
-161
⽂
章
-0
评论
-3
⽹络
通
信
-->IO
多
路
复
⽤
之
select
、
poll
、
epoll
详解
IO
多
路
复
⽤
之
select
、
poll
、
epoll
详解
⽬
前
⽀
持
I/O
多
路
复
⽤
的
系统
调
⽤
有
select
,
pselect
,
poll
,
epoll
,
I/O
多
路
复
⽤
就
是
通过
⼀
种
机
制
,⼀个
进
程
可
以
监
视
多
个
描
述
符
,⼀
旦
某
个
描
述
符
就
绪
(⼀
般
是
读
就
绪
或
者
写
就
绪
),
能
够
通
知
程
序
进
⾏
相
应
的
读
写
操
作
。
但
select
,
pselect
,
poll
,
epoll
本
质
上
都
是
同
步
I/O
,
因
为他们
都
需
要
在
读
写
事件
就
绪
后
⾃
⼰
负责
进
⾏读
写
,
也
就
是
说
这
个
读
写
过
程
是
阻
塞
的
,
⽽
异
步
I/O
则
⽆
需
⾃
⼰
负
责
进
⾏读
写
,
异
步
I/O
的
实
现
会
负责
把
数据
从
内
核
拷
⻉
到
⽤
户
空
间
。
与
多
进
程
和
多
线
程
技
术
相
⽐
,
I/O
多
路
复
⽤
技
术
的
最
⼤
优
势
是
系统
开
销
⼩
,
系统
不
必
创
建
进
程
/
线
程
,
也
不
必
维
护
这
些
进
程
/
线
程
,
从
⽽
⼤⼤
减
⼩
了
系统
的
开
销
。
⼀
、
使
⽤
场
景
IO
多
路
复
⽤
是
指
内
核
⼀
旦
发
现
进
程
指
定
的
⼀个
或
者
多
个
IO
条
件
准
备
读
取
,
它就
通
知
该
进
程
。
IO
多
路
复
⽤
适
⽤
如
下
场
合
:
1
)
当
客
户
处
理
多
个
描
述
符
时
(⼀
般
是
交互
式
输
⼊
和
⽹络
套
接
⼝
),
必
须
使
⽤
I/O
复
⽤
。
2
)
当
⼀个
客
户
同
时
处
理
多
个
套
接
⼝
时
,
这
种
情
况
是
可
能
的
,
但
很
少
出
现
。
3
)
如
果
⼀个
TCP
服
务
器
既
要
处
理
监
听
套
接
⼝
,
⼜
要
处
理
已
连
接
套
接
⼝
,⼀
般
也
要
⽤
到
I/O
复
⽤
。
4
)
如
果
⼀个
服
务
器
即
要
处
理
TCP
,
⼜
要
处
理
UDP
,⼀
般
要
使
⽤
I/O
复
⽤
。
5
)
如
果
⼀个
服
务
器
要
处
理
多
个
服
务
或
多
个
协
议
,⼀
般
要
使
⽤
I/O
复
⽤
。
⼆
、
select
、
poll
、
epoll
简
介
epoll
跟
select
都
能
提
供
多
路
I/O
复
⽤
的
解
决
⽅
案
。
在
现
在
的
Linux
内
核
⾥
有
都
能
够
⽀
持
,
其
中
epoll
是
Linux
所
特
有
,
⽽
select
则
应
该
是
POSIX
所
规
定
,⼀
般
操
作
系统
均
有
实
现
。
1
、
select
基
本
原
理
:
select
函
数
监
视
的
⽂
件
描
述
符
分
3
类
,
分别
是
writefds
、
readfds
、
和
exceptfds
。
调
⽤
后
select
函
数
会
阻
塞
,
直
到
有
描
述
符
就
绪
(
有
数据
可
读
、
可
写
、
或
者
有
except
),
或
者
超
时
(
timeout
指
定
等
待
时
间
,
如
果
⽴
即
返
回
设
为
null
即可
),
函
数
返
回
。
当
select
函
数
返
回
后
,
可
以
通过遍
历
fdset
,
来
找
到
就
绪
的
描
述
符
。
基
本
流
程
,
如
图
所
示
:
昵
称
:
蚂蚁
吃
⼤
象
、
园
龄
:
4
年
9
个
⽉
粉
丝:
19
关
注
:
8
+
加关
注
< 2019
年
6
⽉
>
⽇
⼀
⼆
三
四
五
六
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6
随
笔
分
类
随
笔
分
类
Algorithm(32)
C++(20)
LeetCode(2)
Linux(21)
Redis(4)
STL/Boost(11)
⾯
试
相
关
(4)
设计
模
式
(18)
数据
库
(8)
⽹络
通
信
(13)
业
余
科
普
(5)
疑
难
杂
症
(2)
源
码
实
现
(6)
云
计
算
/
⼤
数据
(15)
随
笔
档案
随
笔
档案
2018
年
6
⽉
(2)
2018
年
2
⽉
(2)
2016
年
9
⽉
(6)
2016
年
5
⽉
(1)