C++ 性能优化与服务导向架构探索
1. C++ 协程相关工具与实现
在 C++ 编程中,有一些实用的工具可以帮助我们更好地处理异步操作和提高性能,下面为你介绍几个重要的工具及其使用方法。
1.1 工具介绍
- when_all_ready 和 when_all :这两个工具在处理子可等待对象的失败情况时有所不同。
when_all_ready即使在出现失败的情况下也会完成操作,调用者可以检查每个结果;而when_all只要有一个子可等待对象抛出异常,就会重新抛出该异常(但无法知道是哪个抛出的),并且会取消所有未完成的任务。 - fmap :类似于函数式编程,
fmap可以将一个函数应用到一个可等待对象上。你可以将其看作是将一种类型的任务转换为另一种类型的任务。例如,你可以通过调用fmap(serialize, my_coroutine())来序列化协程返回的类型。 - resume_on :该工具用于指示协程在完成某些工作后使用哪个调度器继续执行。这使得你可以在特定的执行上下文中执行某些工作,比如在专用的 I/O 线程上运行与 I/O 相关的任务。而且,它可以像
std::ranges一样与计算操作进行“管道”操作。 - schedule_on :用于指示协程使用哪个调度器来开始某些工作。常见的
C++协程与服务导向架构知识探索
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



