- 1
- 2
- 3
- 4
- 5
libevent的线程模型多线程环境下的正确用法.docx
资料介绍
libevent 的线程模型:多线程环境下的正确用法
libevent 是单线程的,也是多线程的
这里有个容易混淆的点。libevent 的事件循环,本身是单线程的——一个 event_base 只能在一个线程中运行 dispatch。但 libevent 也支持多线程应用,关键在于怎么组织多个 event_base。
理解 libevent 的线程模型,是把它用在高并发、多线程场景的前提。这篇文章把线程模型和正确用法讲清楚。
单线程的默认模型
默认情况下,libevent 是单线程模型。
一个 event_base,一个事件循环,在一个线程中运行。所有事件在这个线程中被监听、激活、分发。全程无锁,性能极高。
这个模型下,开发者要注意:事件循环线程之外的操作,不能直接修改共享的事件状态,否则有并发风险。
多线程的两种组织方式
libevent 支持多线程,通常有两种组织方式。
一种是"一线程一 event_base"(多 Reactor)。每个线程创建自己的 event_base,各自运行事件循环,负载均衡分发连接。这是处理高并发连接的标准做法。
另一种是"单 event_base + 工作队列"。单个事件循环负责接收事件,但回调里把耗时任务投递到工作线程处理,事件循环本身保持不阻塞。
初始化线程支持
在多线程应用里,使用 libevent 之前需要初始化线程支持。
通过 evthread_use_pthreads()(Linux)或 evthread_use_windows_threads()(Windows),让 libevent 内部使用相应的线程同步机制(锁、条件变量等)。
如果不初始化线程支持,libevent 内部可能不加锁,多线程访问会有风险。所以多线程应用必须在调用其他 libevent 函数之前初始化线程支持。
部分文件列表
| 文件名 | 大小 |
| libevent的线程模型多线程环境下的正确用法.docx | 38K |
最新上传
-
江岚 打赏20.00元 12小时前
-
江岚 打赏50.00元 12小时前
-
江岚 打赏20.00元 12小时前
-
江岚 打赏10.00元 12小时前
-
21ic小能手 打赏10.00元 2天前
-
21ic小能手 打赏8.00元 2天前
-
21ic小能手 打赏8.00元 2天前
-
21ic小能手 打赏5.00元 2天前
-
21ic小能手 打赏3.00元 2天前
-
tangyu1 打赏1.00元 3天前
-
jjjjkkkkk 打赏1.00元 3天前
-
emlimei 打赏1.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏3.00元 3天前
资料:低频功率放大器的设计.
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:51单片机数字频率计
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
13573902396 打赏1.00元 3天前
-
21下载积分 打赏310.00元 3天前
用户:江岚
-
21下载积分 打赏310.00元 3天前
用户:潇潇江南
-
21下载积分 打赏60.00元 3天前
用户:他山之石可攻玉
-
21下载积分 打赏310.00元 3天前
用户:小猫做电路
-
21下载积分 打赏210.00元 3天前
用户:zhengdai
-
21下载积分 打赏210.00元 3天前
用户:w993263495
-
21下载积分 打赏10.00元 3天前
用户:烟雨
-
21下载积分 打赏60.00元 3天前
用户:gsy幸运
-
21下载积分 打赏70.00元 3天前
用户:铁蛋锅
-
21下载积分 打赏65.00元 3天前
用户:xzxbybd
-
21下载积分 打赏60.00元 3天前
用户:jh0355
-
21下载积分 打赏60.00元 3天前
用户:w178191520
-
21下载积分 打赏20.00元 3天前
用户:jh03551
-
21下载积分 打赏20.00元 3天前
用户:sun2152
-
21下载积分 打赏20.00元 3天前
用户:kk1957135547
-
21下载积分 打赏25.00元 3天前
用户:w1966891335
-
21下载积分 打赏20.00元 3天前
用户:xuzhen1
热门下载
- 从双脉冲到动态RDS(on):GaN器件动态参数测试全解析
- c2762669 变容二极管_1SV305(TPH3,F)_规格书
- 一颗便宜可靠的3D磁场传感器MMC5603NJ 手册
- STM32F407ZGT6的示波器 信号发生器 数字万用表集成装置设计
- 2024电赛元件仪器清单
- GJB 152A-1997 军用设备和分系统电磁发射和敏感度测量
- modbus_tcp 源码 可直接移植使用
- 泰和安TX3016C TX3006C TX3008C火灾报警控制器安装使用说明书 V1.3
- 专业级文件压缩与解压工具 ZArchiver_Pro_1.0.10_101035_9e6036
- 5W和15W无线充资料




全部评论(0)