痛苦的epoll+线程池实践 2 相关模式的设置
2011-11-23 20:33
295 查看
参见 《经验实在太重要了:epoll的一些补充》
epoll模式分为ET边缘模式和 LT水平模式
IO 阻塞模式分为 阻塞和非阻塞
1、ET边缘模式(listen socket fd)+非阻塞(listen socket fd)
可以使用同一线程的epoll,但是应注意如果是 listen socket fd可读,应使用 while 重复 accept 多个连接
2、ET边缘模式(listen socket fd)+阻塞(listen socket fd)
由于 listen socket fd 是阻塞的,accept 和 epoll 最好放在两个线程;否则因为listen socket fd 是 ET边缘模式,有一到多个连接过来,如
果此时让该单线程while阻塞在 listen socket fd 的 accept上,程序将一直没有响应,如果不用while,而仅仅accept 一次,则会使得该次epoll
事件中的后续连接无法 accept到
3、LT水平模式(listen socket fd)+非阻塞(listen socket fd)
可以使用同一线程epoll,不需要while重复accept多个连接
4、LT水平模式(listen socket fd)+阻塞(listen socket fd)
此模式非常类似经典select、poll,相当于一个快速的poll
epoll模式分为ET边缘模式和 LT水平模式
IO 阻塞模式分为 阻塞和非阻塞
1、ET边缘模式(listen socket fd)+非阻塞(listen socket fd)
可以使用同一线程的epoll,但是应注意如果是 listen socket fd可读,应使用 while 重复 accept 多个连接
2、ET边缘模式(listen socket fd)+阻塞(listen socket fd)
由于 listen socket fd 是阻塞的,accept 和 epoll 最好放在两个线程;否则因为listen socket fd 是 ET边缘模式,有一到多个连接过来,如
果此时让该单线程while阻塞在 listen socket fd 的 accept上,程序将一直没有响应,如果不用while,而仅仅accept 一次,则会使得该次epoll
事件中的后续连接无法 accept到
3、LT水平模式(listen socket fd)+非阻塞(listen socket fd)
可以使用同一线程epoll,不需要while重复accept多个连接
4、LT水平模式(listen socket fd)+阻塞(listen socket fd)
此模式非常类似经典select、poll,相当于一个快速的poll
相关文章推荐
- 嵌入式裸机开发学习:2440驱动LCD的24bpp模式相关设置
- oracle数据库热备方案中,自动归档模式的相关问题,-------转【一例SPFILE设置错误导致数据库无法启动】
- ASP.NET 实践:设置 IIS 6.0 的应用程序隔离模式
- CI框架apache相关设置 开发模式 生产模式自动判断
- [Bios启动相关] 各品牌笔记本BIOS设置硬盘为兼容模式(IDE)方法
- 关于Flyweight模式应用实践的相关介绍
- 痛苦的epoll+线程池实践 1 程序架构
- 极光单独设置铃声,震动模式相关问题解决
- uboot初始化中为什么要设置CPU为SVC模式
- VMware host-only模式上网设置
- J2EE设计模式分析与实践——从J2EE设计模式总图理解J2
- 适配iOS10 的相关权限设置
- 让浏览器自动设置文档模式
- Android 中关于SharedPreferences 操作模式的设置
- 装机新装系统 设置硬盘为兼容模式(IDE)
- Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)
- Draw2D--1. 设计思想和相关模式
- 用python加载3ds max场景设置相关参数,渲染,保存输出图,最后退出3dsmax软件
- ASP.NET个性化设置相关的API(转载)
- Apache模式介绍和优化设置:修改最大并发连接数