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

2308C++学习简单协程文档

调试

gdb/lldb

p __coro_frame
p __promise

Try有三种状态:无状态,有异常,有值.

条件变量

主要区别在简单异步中条件变量面向Lazy协程.在条件变量阻塞协程时,不会阻塞当前线程.用于多个协程间交互协作.基于协程版条件变量,多个协程可实现典型生产者消费者模型.

通知器

通知器是退化的条件变量,且不依赖外部互斥锁.用通知()唤醒阻塞的线程.

自旋锁

自旋锁包含Lazy无栈协程版本及普通线程版本.
临界区域太大时,频繁让出可能引起性能下降.此时可增大自旋次数来减少协程主动让出频率.

协程交互

普通函数可以使用syncAwait(同步等待)封装无栈协程.
无论普通函数,有栈协程或者是无栈协程,都可以使用.start方式异步非阻塞地调用协程.

执行器

用来自定义调度,在指定的调度器中运行协程非常简单,只需要创建协程时传递执行器给协程即可.在Lazy中通过via()/setEx()可以传递执行器;在Uthread中设置async()执行器参数传递.

指定多个协程多线程并行化执行,一般要求用户多个λ函数之间不存在数据竞争.
指定多个协程总是在当前线程异步协作式执行,一般在函数间存在数据竞争时用它.

latch

用来挂起等待线程,多个有栈协程同步.

http://www.lryc.cn/news/111538.html

相关文章:

  • C++笔记之从数组指针到函数数组指针(使用using name和std::function)
  • 【数据结构】常见的排序算法
  • CentOS 安装 Jenkins
  • 前端如何设置表格边框样式和单元格间距?
  • Ubuntu 22.04安装搜狗输入法
  • 【C++】初阶 --- 内联函数(inline)
  • VGGNet剪枝实战:使用VGGNet训练、稀疏训练、剪枝、微调等,剪枝出只有3M的模型
  • 【iOS】GCD深入学习
  • Webpack开启本地服务器;HMR热模块替换;devServer配置;开发与生成环境的区分与配置
  • opencv 31-图像平滑处理-方框滤波cv2.boxFilter()
  • Kubernetes关于cpu资源分配的设计
  • Flink读取mysql数据库(java)
  • 小程序学习(五):WXSS模板语法
  • 注解 @JsonFormat 与 @DateTimeFormat 的使用
  • Python实现决策树算法:完整源码逐行解析
  • Linux文本三剑客---grep、sed、awk
  • 局域网VoIP网络电话测试
  • el-table 去掉边框(修改颜色)
  • redis与MongoDB的区别
  • CSS设置高度
  • 开源免费用|Apache Doris 2.0 推出跨集群数据复制功能
  • 【docker】docker-compose服务编排
  • EdgeBox_tx1_A200 PyTorch v1.9.0 环境部署
  • 【雕爷学编程】MicroPython动手做(33)——物联网之天气预报
  • 分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离 (三)
  • 探秘企业DevOps一体化平台建设终极形态丨IDCF
  • 百度智能创做AI平台
  • Python 开发工具 Pycharm —— 使用技巧Lv.1
  • zookeeper --- 高级篇
  • TypeScript【enum 枚举】