当前位置: 首页 > article >正文

brpc之Butex

简介

Butex是针对bthread设计的,用于bthread的调度,包含唤醒及等待

结构

Butex
+ butil::atomic value
+ ButexWaiterList waiters
+ internal::FastPthreadMutex waiter_lock
ButexWaiter
+ bthread_t tid
+ butil::atomic container
ButexBthreadWaiter
+ TaskMeta* task_meta
+ TimerThread::TaskId sleep_id
+ WaiterState waiter_state
+ int expected_value
+ Butex* initial_butex
+ TaskControl* control
+ const timespec* abstime
+ bthread_tag_t tag
ButexPthreadWaiter
+ butil::atomic sig
butil::LinkNode<T>
- LinkNode<T>* previous_
- LinkNode<T>* next_

ButexWaiterList的定义是链表

typedef butil::LinkedList<ButexWaiter> ButexWaiterList;

ButexBthreadWaiter表示为等待类型为bthread,ButexPthreadWaiter表示等待类型为pthread


http://www.kler.cn/a/539325.html

相关文章:

  • 编程式路由
  • 详解SQLAlchemy的函数relationship
  • Oracle数据连接 Dblink
  • 在 Visual Studio Code 与微信开发者工具中调试使用 emscripten 基于 C 生成的 WASM 代码
  • deepseek API开发简介
  • xss闯关
  • windows11上,使用pipx安装Poetry,Poetry的安装路径是什么?
  • 数据结构与算法--实现链表的复制(链表中节点比较特殊,含有一个rand指针,指向任意一个节点)
  • 电脑运行黑屏是什么原因?原因及解决方法
  • PM2 与 Docker 结合使用:Node.js 应用的高效管理与部署
  • 项目的虚拟环境的搭建与pytorch依赖的下载
  • MyBatis-Plus快速使用
  • 【在线优化】【有源程序】基于遗传算法(GA)和粒子群优化(PSO)算法的MPPT控制策略
  • PHP的filter_var函数的安全问题
  • 相机开启状态下拔出SD卡导致的数据丢失问题及恢复方法
  • 蓝桥杯小白打卡第三天
  • 最短路径问题-------Dijkstra算法
  • 一个基于ESP32S3和INMP441麦克风实现音频强度控制RGB灯带律动的代码及效果展示
  • 【Java基础】为什么不支持多重继承?方法重载和方法重写之间区别、Exception 和 Error 区别?
  • 【SQLite】设置本地时间戳默认值
  • 【PDF提取内容】如何批量提取PDF里面的文字内容,把内容到处表格或者批量给PDF文件改名,基于C++的实现方案和步骤
  • DeepSeek与Vue.js携手:打造高效分页组件之旅
  • 在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复。
  • stm32编译过程剖析 MicroPython openmv运行逻辑分析 MicroPython和传统c语言编译的比较 头脑风暴
  • 本地部署DeepSeek-R1模型(新手保姆教程)
  • 树与二叉树的概念