ev-drogon-atomic-tick-counter-002¶
| 字段 | 值 |
|---|---|
| 项目 | drogonframework/drogon |
| 固定 commit | 3aae769cc405 |
| 路径 | lib/inc/drogon/CacheMap.h |
| 行段 | L452-L457 |
| 特性 | std::atomic |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-11-03 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
用 std::atomic
为什么典型¶
缓存项在多个事件循环线程中插入和删除,tick 计数是高频递增的共享标量;atomic 让计数无需持锁,容器仍由互斥量保护。
摘录¶
std::vector<CallbackBucketQueue> wheels_;
std::atomic<size_t> ticksCounter_{0};
std::mutex mtx_;
std::mutex bucketMutex_;
备注¶
生产头文件;同一个类里 atomic 计数器与两把互斥量并存,说明原子类型是按字段选择的,不是替代所有锁。