还是不够方便。
本质上需要的是一个轻量级线程库,可以直接将任何阻塞型的单线程路径转化成轻量级线程。
比如说新来的年轻程序员写了一个函数:
XData DownloadX(...);
这个函数会花相当长时间去网上下载X
然后过两天我们发现同时也需要下载Y,怎么办?这个年轻程序员写了一个函数:
YData DownloadY(...);
这两个函数的接口设计都没有考虑并行。
现在如果这个轻量级线程可以做到:
LT ltx([]() { return DownloadX(...); });
LT lty([]() { return DownloadY(...); });
XData x = ltx.JoinAndGet();
YData y = lty.JoinAndGet();
这样就非常方便了。
事实上这样就能实现所有的函数以及其它正常程序接口看起来都是单线程阻塞式的简单路径,但却可以轻松将各种阻塞事务并行起来,且每一层都可以。
【 在 GoGoRoger (GoGoRoger) 的大作中提到: 】
: 标 题: Re:c++23?
: 发信站: 水木社区 (Fri May 15 10:36:44 2020), 站内
:
: 国内就有微信的libq和魅族的libgo来源。
: 【 在 here080 的大作中提到: 】
: :
: : https: //github.com/abseil/abseil-cpp/issues/5
: : 可惜没有开源
: :
:
: 发自「今日水木 on Mi Note 3」
: --
: 生活好无趣,到水木吵架去。
:
: ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 1.89.215.*]
--
FROM 76.126.252.*