当前位置:首页 > 每日看点

CPP26的exec模型你认为设计的如何?

卡卷网1年前 (2025-03-05)每日看点298

我觉得非常好。我第一时间能想到的有以下几个方面:

1、统一的异步模型,thread pool、GPU等这种资源调度以后都有了统一的调度接口,第三方库之间相互集成也变得更加方便。不仅仅是抽象出了scheduler/sender/receiver之类的接口,还封装了一些常用的异步算法,像when_all之类的,大大简化了异步代码的编写。

以前老有人问为什么STL中没有thread pool,其实只要就是因为C++还没有统一的异步模型,即使想要提供thread pool也没法确定需要提供什么样的api接口。现在不一样了,哪怕第三方的各种thread pool也可以轻松按照execution的模型来适配,stdexec里面就适配了好几个thread pool,包括tbb、asio等等:

CPP26的exec模型你认为设计的如何?  第1张

链接:

github.com/NVIDIA/stdex

2、协程和传统异步的高度统一,两种调用方式给你选择。协程方式主要是代码编写简单、可读性好,sender方式主要是可移植性更强,且性能更高。execution中的sender很容易就能支持co_await。

stdexec的文档中的这个例子:

CPP26的exec模型你认为设计的如何?  第2张

我把它协程,就变成这样:

#include <stdexec/execution.hpp> #include <exec/static_thread_pool.hpp> #include <exec/task.hpp> #include <print> exec::task<std::tuple<int, int, int>> Work(auto& scheduler) { auto fun = [](int i) { return i*i; }; auto work = stdexec::when_all( stdexec::on(scheduler, stdexec::just(0) | stdexec::then(fun)), stdexec::on(scheduler, stdexec::just(1) | stdexec::then(fun)), stdexec::on(scheduler, stdexec::just(2) | stdexec::then(fun)) ); co_return co_await work; } int main() { exec::static_thread_pool pool(3); auto scheduler = pool.get_scheduler(); auto work = Work(scheduler); auto [tp] = stdexec::sync_wait(std::move(work)).value(); // expect(tp == std::tuple<int, int, int>(0, 1, 4)); }

3、应用structured concurrency思想,并将其推向新的高度。作为asio的粉丝,我觉得asio输得不冤。asio::co_spawn是不符合structured concurrency思想的:

CPP26的exec模型你认为设计的如何?  第3张

youtube上有好几个关于Structured Concurrency思想的不错的视频,如果你只想看一个,我推荐这个:

youtube.com/watch?

90年代C++凭借STL+上百种算法取得了非常强大的竞争力。C++26的execution就是并行并发编程时代的STL,在所有编程语言里面继续领先,甚至遥遥领先。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/03/11638.html

分享给朋友:

相关文章

推荐几个问卷调查平台?

推荐几个问卷调查平台?

我给大家免费推荐一些市面上不多,且稳定的免费的问卷平台,这个在网上都是能够搜索到的,有的还是世界500钱企业,这里推荐的基本上都是上市的问卷公司了。上面都是可以免费去注册的,对外公开开放的,做完了直接奖励美刀的,不需要兑换卡什么的。 C…

知乎创作收益高吗?

知乎创作收益高吗?

高啊,主要是大多数人不知道怎么做。(这是以前写的,请看到最后) 我之前就是傻傻写问答,文章,结果一毛钱收益没有。 知乎上收益高的主要有盐选,好物推荐,致知计划,付费咨询。1、盐选吧,是写故事,小说类的天堂,还有就是大咖们的地盘了,难度高。…

到什么程度才叫精通 Linux?

我们医院有个大牛。 有一次,我的Linux电脑下载了Microsoft office 365 不能运行。于是买了2.5升装康师傅冰红茶找到大牛,让他帮忙解决。 大牛白了我一眼,让我把安装包发给他,只见他输入一个命令将安装包打开,整个屏幕都是…

如何看待台积电,三星相继停供大陆7nm及更先进芯片?

在这个事出来之前,我就看到过一个说法,两家Foundry可以在中东建厂,让中东的Fab去干“脏活”。本质上是国内企业搞几个中东的代理人,装作是中东的初创Fabless企业去下单,人家Foundry大概率睁一只眼闭一只眼,只管数钱。然而,紧接…

大家都是怎么把自己的粉丝增加到1000的呢?

大家都是怎么把自己的粉丝增加到1000的呢?

截至2024年10月30日,关注者总数1137人,用时80天,增速约14人/天。 2024年8月10日开始创作,连续一周,1个关注者都没有。创作第7天,得到第一个关注,7天时间,写了8篇回答。当天得到关注,激动的心情历历在目。 没有一个…

如何评价小米14pro顶配可以选配卫星通话,小米15全系都无法选配?

如何评价小米14pro顶配可以选配卫星通话,小米15全系都无法选配?

雷总不是说了吗,我可以不用,但你不能没有。市面上OPPO Find X8 Pro和vivo X200 Pro的卫星通信版分别加价300,而荣耀Magic7和Magic7 Pro有卫星通信版且不加价,荣耀更显诚意。 我觉得有是更好的,虽然使用…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。