Coke(五):协程任务的同步/异步等待

在前几篇文章中,多次用到了协程任务上的同步等待和异步等待功能,本文将对这部分内容做进一步的介绍。首先来看一个简单的例子 在这个例子中,main是我们经常会见到的C++函数,而hello则是一个协程,在C++协程中,使用co_await来实现对可等待体的异步等待。在hello协程中,先展示了如何使用co_await异步等待prepare协程并获取其返回值,然后再输出Hello world。 coke …

Coke(四):优雅地调度计算任务

作为C++协程框架,Coke当然可以优雅地发起计算任务,我们以“计算一组数据的和”为例,先直观地了解一下发起计算任务的方式。 创建计算任务就是如此简洁,只需要向coke::go传入可调用对象和参数就可以了。但由于C++中有模板和函数重载,当函数声明比较复杂的时候,使用起来会比较晦涩。此时若恰好在协程上下文中,可以通过coke::switch_go_thread()切换到计算线程,然后直接调用函数就 …

Coke(三):使用HttpClient的更多功能

上一篇文章通过几个示例介绍了如何使用Coke便捷地发起Http请求,本文延续上一个话题,将coke::HttpClient的功能详细地介绍一下。 在C++ Workflow中,Http任务通常通过工厂函数创建,并且可以指定重试次数等参数。而在Coke中可以通过coke::HttpClient来创建Http任务。首先介绍一下与任务相关的参数 coke::HttpClient目前有三个接口用于创建任务 …

Coke(二):便捷地发起Http请求

项目Github主页 Coke 在这个时间点开发本项目,有以下几点考虑 常用的编译器对C++ 20的支持已经逐步完善,本项目依赖于GCC >= 11或Clang >= 15 常用的操作系统发行版支持了新编译器,例如CentOS Stream 8、Ubuntu 22.04、Fedora 38等 C++ Workflow使用回调函数的方式组织异步任务,一部分习惯写同步代码的用户可能会对此感 …

Coke(一):你好,世界

C++ Workflow是一款高性能的异步编程范式,自Github开源以来,已经收货了一万多枚Star,得到了越来越多的认可。 Coke项目是一个高性能的协程库,基于C++ 20提供的协程组件开发,提供一组简洁的异步接口,而其后台则是由C++ Workflow强力驱动。使用Coke可以轻松地创建协程任务,并通过C++ Workflow的调度器高效地调度和执行,Coke希望为大家带来一种新颖的体验C …