关注
之前听说C++20也引入了协程,但是不完善,估计要等到C++23。所以当时去剖析了腾讯微信开源的libco,顺便也学习一下协程的知识。
协程又称用户态的线程,是因为其之间的切换是只在用户态进行的,而不需要切换入内核态。就像一个进程有多个线程一样,一个线程也有多个协程。在libco中,一个协程只能运行在一个线程中,其和线程的关系类似于进程之于CPU。这里是跟go语言协程不同的第一个点。
第二个点就是,go语言的协程是对称式的,其协程之间的调度由调度器来resume,然后协程中断执行也会将CPU使用权yield回调度器。而libco这里则是非对称式的,其使用一个pCallStack来跟踪当前的协程调用情况,栈顶永远都是当前正在执行的协程。栈底则是主协程所在的地方,主协程也就是main函数那个协程,其在调用resume其他协程之后就进入了eventloop中负责调度其他协程。而当前的栈顶协程当执行完后,其就出栈,栈顶指针--,也就是将CPU使用权yield到它下面的那个协程。
查看原帖
1 评论
相关推荐
点赞 评论 收藏
分享
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你 点赞 评论 收藏
分享
12-22 20:12
武汉理工大学 前端工程师 桃子哈哈哈:遇到不会的也尽力按自己的思路来讲给面试官主要要给面试官体现你的思考,然后就把每次面试当做一次学习就好了校友
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 27届学院二本,袋鼠云->快手->腾讯wxg,25年末聊聊我的前端之路2.3W
- 2... 本科五段大厂实习,秋招五个offer,我的校招结束了7041
- 3... 岁末论道:谁才是牛客 2025 最强修仙者?6284
- 4... 我的世界观,就是对抗优绩主义的武器5528
- 5... 大四双非水产专业上岸阿里后端(五)5114
- 6... 27双非杀入字节!3859
- 7... 工作半年后更确定:我们依然不欠优绩主义什么3652
- 8... 双非计算机秋招总结,附带一些个人建议2802
- 9... 适可而止吧!你就是“烂泥”2656
- 10... 日常实习-小红书后端java二面1909
正在热议
更多
# 牛客2025仙途报告 #
18166次浏览 300人参与
# 实习没人带,苟住还是跑路? #
1280次浏览 41人参与
# 大家实习都在做什么? #
1046次浏览 29人参与
# 元旦假期你打算怎么过 #
1848次浏览 57人参与
# 一人说一家双休的公司 #
302次浏览 8人参与
# 我们是不是被“优绩主义”绑架了? #
3377次浏览 143人参与
# 多益网络工作体验 #
60034次浏览 299人参与
# 工作中的卑微时刻 #
29678次浏览 182人参与
# 机械制造面试记录 #
299647次浏览 3143人参与
# 从夯到拉,评价编程语言 #
27644次浏览 146人参与
# 找工作,行业重要还是岗位重要? #
88065次浏览 1765人参与
# 参加过提前批的机械人,你们还参加秋招么 #
105255次浏览 1647人参与
# 今年你最想重开的一场面试是? #
15802次浏览 164人参与
# 华为工作体验 #
276954次浏览 1354人参与
# 华为池子有多大 #
154338次浏览 866人参与
# 你有哪些缓解焦虑的方法? #
44709次浏览 871人参与
# 没有家庭托举的我是怎么找工作的 #
32118次浏览 263人参与
# 实习要如何选择和准备? #
130754次浏览 1517人参与
# 礼物开箱Plog #
3671次浏览 109人参与
# 机械人晒出你的简历 #
148753次浏览 887人参与

