现代 C++20 实战高手课
卢誉声
Autodesk 首席工程师
3781 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 29 讲
现代 C++20 实战高手课
15
15
1.0x
00:00/00:00
登录|注册

期中周|扩展现有协程框架,实现高级任务调度

你好,我是卢誉声。
时间过得真快,从 1 月 16 日上线到现在,我们的学习之旅已经走过了将近 1 个月,不知道你的收获如何呢?
之前我说过,如何在实际工程项目中通过 C++20 的新特性解决问题,将是我们学习的重点。从我的经验看,想要从初步了解到熟练应用这些新特性,也确实需要多花些功夫,而且不光要多看,更要多练,这样才能形成“手感”。
所以,我特意安排了这次期中周。从 2 月 13 日开始到 2 月 19 日结束,这期间我们会暂停更新正文内容,你可以好好利用这一周的时间,回顾一下前面学过的知识,查漏补缺。
在实际工作里,新的挑战通常是我们学习锻炼的良机。所以,期中周我还给你准备了一道测试题,一起来挑战一下吧!
C++ Coroutines 是 C++20 标准带来的最令人兴奋和激动的全新核心语言特性之一。课程第七讲至第十讲,用了不少篇幅详细讲解 C++ Coroutines。不过,正如我们所见的,C++20 中提供的协程仅提供了语言层面的支持,缺乏标准库的支持。因此,在标准得到进一步演化之前,我们不得不实现绝大多数接口约定。
这让我们使用 C++ Coroutines 的成本提高了。我在课程中已经给出了基于接口约定的实战案例。但是,这个案例还有不少可以提升的空间。请你在现有代码的基础上,尝试实现后面的功能。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

C++20标准带来了令人兴奋的全新核心语言特性之一——C++ Coroutines。本文介绍了期中测试题的安排和C++ Coroutines的重要性,以及对于实际工程项目中使用C++20新特性解决问题的重点。作者强调了在实际工作中面对新挑战是学习的良机,并提到了C++ Coroutines的实际应用和实战案例。此外,文章还提到了C++ Coroutines的成本和实现的空间,以及对读者的挑战:在现有代码的基础上,尝试实现更多功能。具体来说,读者需要在Windows上使用CMake编译提供的asyncpp代码,并实现一个更智能的任务分发机制来处理耗时任务,包括使用专有线程和线程优先级来处理特殊情况。最后,作者提供了开发环境和工具的建议,并期待读者的作业。整体而言,本文强调了C++ Coroutines的重要性和实际应用,并为读者提供了实践的机会和挑战。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《现代 C++20 实战高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 李云龙
    由于不能上传图片,我就描述一下我的思路:我在老师的代码基础上增加了一个Awaitable类型,用于专门处理有优先级的任务。同样地,我也增加了一个处理高优先级任务的任务队列、一个专门处理高优先级任务的任务循环的异步线程。需要高优先级任务处理的任务首先需要使用AsyncifyPriority转换为新增的AwaitablePriority类型,这个类型中使用一个可以处理任务优先级的suspender函数,将高优先级任务插入到高优先级任务队列中,将其他优先级任务插入到原有的任务队列中,并将协程唤醒的函数对象都放入主线程的任务队列中。 具体的代码请查阅:https://gitee.com/devin21/midTermAssignment/tree/master/ 欢迎大家批评指正。

    作者回复: 基本思路是没有问题的,核心就是另加一个高优先级的任务异步循环线程,然后把任务分派到这个线程

    2024-01-05归属地:北京
    1
  • peter
    准备搭建环境试试编译代码: Q1:老师给出的链接中,VS22有三个版本:community、Professional、Enterprise。Community估计是最低版本了,能满足需要吗? Q2:VS22自身没有CMake吗?如果有,为什么老师又提供了一个CMake的链接?(需要下载此CMake,然后安装到VS22吗?) Q3:记得有VS2015,盗版的,不记得放在哪里了,也许可以找到。VS2015或VS2018可以吗?

    作者回复: Q1:满足需求。 Q2:安装时可勾选安装 CMake。 Q3:需要 Visual Studio 2022 及其包含的 Visual C++以支持最新的C++标准。

    2023-02-13归属地:北京
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部