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

调试

gdb/lldb

cpp 复制代码
p __coro_frame
p __promise

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

条件变量

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

通知器

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

自旋锁

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

协程交互

普通函数可以使用syncAwait(同步等待)封装无栈协程.

无论普通函数,有栈协程或者是无栈协程,都可以使用.start方式异步非阻塞地调用协程.

执行器

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

指定多个协程多线程并行化执行,一般要求用户多个λ函数之间不存在数据竞争.

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

latch

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

相关推荐
编程饭碗1 分钟前
【多线程编程】
java·开发语言
开开心心_Every1 分钟前
安卓做菜APP:家常菜谱详细步骤无广简洁
服务器·前端·python·学习·edge·django·powerpoint
wdfk_prog3 分钟前
WIN11如何可以安装ISO
linux·笔记·学习
Darkershadow12 分钟前
蓝牙学习之Provision(2)
学习·蓝牙·ble·mesh
vyuvyucd18 分钟前
Python虚拟环境终极指南:venv到uv进阶
开发语言·python·uv
Tim_1025 分钟前
【C++入门】05、复合类型-数组
开发语言·c++·算法
无限进步_26 分钟前
【C语言&数据结构】另一棵树的子树:递归思维的双重奏
c语言·开发语言·数据结构·c++·算法·github·visual studio
kitsch0x9729 分钟前
论文学习_IDFUZZ: Intelligent Directed Grey-box Fuzzing
学习
佑白雪乐31 分钟前
<Python第1集>
开发语言·python
菜还不练就废了31 分钟前
26.1.12|JavaSE复盘补充,整到哪里算哪里(一)
java·开发语言