1 Star 0 Fork 13

zcy543814 / libevent

forked from 刘丹冰Aceld / libevent 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
21-解决阻塞死等待的办法.md 895 Bytes
一键复制 编辑 原始数据 按行查看 历史
aceld 提交于 2016-07-15 06:42 . Update 21-解决阻塞死等待的办法.md

2.2 解决阻塞死等待的办法

2.2.1 阻塞死等待的缺点

2.2.2 办法一:非阻塞、忙轮询

while true {
    for i in [] {
        if i has 数据 {
             或者 其他处理
        }
    }
}

2.2.3 办法二:select

select 代收员 比较懒,她只会告诉你快递到了,但是是谁到的,你需要挨个快递员问一遍。

while true {
    select([]);  //阻塞

    for i in [] {
        if i has 数据 {
             或者 其他处理
        }
    }
}

2.2.3 办法三:epoll

while true {
    可处理的流[] = epoll_wait(epoll_fd);  //阻塞

    for i in 可处理的流[] {
         或者 其他处理
   }
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zcy543814/libevent.git
git@gitee.com:zcy543814/libevent.git
zcy543814
libevent
libevent
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891