C++ 协程 学习笔记

协程的优势就是比线程切换的时间少很多,协程的切换时间是纳秒,而进行切换的时间是微秒

单线程用协程可以轻松的处理并发任务

co_yield和co_await可以将协程暂停下来

resume又把协程激活


如果c++函数里有co_await、co_return、co_yield就会自动判定为协程

协程若不写函数返回值,它会自动返回

struct CoRet {
    struct promise_type {
        suspend_never initial_suspend() { return {}; }
        suspend_never final_suspend() noexcept { return {}; }
        void unhandled_exception() {}
        CoRet get_return_object() {
            return { coroutine_handle<promise_type>::from_promise(*this) };
        }
    };

    coroutine_handle<promise_type> _h;
};

写成的返回值需要实现promise_type结构体以及内部这几个函数,第一个是初始化时即会调用该函数,第二个结束时调用该函数,第三个是异常处理函数,第四个是CoRet被作为返回值抛出的返回值函数

相关推荐

  1. C++

    2024-04-21 07:34:03       27 阅读
  2. 自用的C++20学习资料

    2024-04-21 07:34:03       25 阅读
  3. python理解笔记

    2024-04-21 07:34:03       39 阅读
  4. 探究C++20(1)——C++概览

    2024-04-21 07:34:03       35 阅读
  5. kotlin学习总结

    2024-04-21 07:34:03       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-21 07:34:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-21 07:34:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-21 07:34:03       82 阅读
  4. Python语言-面向对象

    2024-04-21 07:34:03       91 阅读

热门阅读

  1. 富格林:明察虚假骗局正规应对

    2024-04-21 07:34:03       32 阅读
  2. 期货交易系统有哪些?资管分仓系统时什么?

    2024-04-21 07:34:03       31 阅读
  3. Android 原生功能与 Vue 交互实现

    2024-04-21 07:34:03       30 阅读
  4. [蓝桥杯 2018 省 A] 航班时间

    2024-04-21 07:34:03       35 阅读
  5. dfs+剪枝,LeetCode 39. 组合总和

    2024-04-21 07:34:03       34 阅读
  6. springboot WebFilter+@Component urlPatterns 全部拦截

    2024-04-21 07:34:03       33 阅读
  7. 数组双指针

    2024-04-21 07:34:03       30 阅读