avatar
文章
4
标签
7
分类
1

主页
归档
标签
分类
鱼头的个人博客
主页
归档
标签
分类

协程

【理论篇】从0到1实现基于协程的WebServer(1) —— coroutine协程
发表于2024-06-19|WebServer
什么是协程 协程是能暂停执行以在之后恢复的函数。 协程分为有栈协程和无栈协程。有栈协程在协程之间存在函数调用栈,保存了单独的上下文环境,可在嵌套函数中暂停执行。而无栈协程所有协程共享一个执行栈,本质上是一个状态机。 C++20中的协程 C++20 的协程是无栈协程,它们通过返回到调用方暂停执行,并且恢复执行所需的数据与栈分离存储。协程函数中需包含 co_await、co_yield、co_return 三个表达式的中的至少一个。 使用 co_return 的协程co_return 用于结束协程,并可返回一个值。 无返回值的协程#include <coroutine>#include <iostream>struct Promise { auto initial_suspend() noexcept { std::cout << "initial_suspend" << std::endl; return std::suspend_always{}; } ...
1
avatar
鱼头
文章
4
标签
7
分类
1
Follow Me
公告
This is my Blog
最新文章
【理论篇】从0到1实现基于协程的WebServer(3) —— socket与IO多路复用(epoll)2024-06-27
【理论篇】从0到1实现基于协程的WebServer(2) —— socket与IO多路复用(select和poll)2024-06-19
【理论篇】从0到1实现基于协程的WebServer(1) —— coroutine协程2024-06-19
Hello World1970-01-01
分类
  • WebServer3
标签
select 协程 poll epoll C++ socket IO多路复用
归档
  • 六月 20243
  • 一月 19701
网站资讯
文章数目 :
4
本站访客数 :
本站总访问量 :
最后更新时间 :
©2024 By 鱼头
框架 Hexo|主题 Butterfly