M.P.O.
Non-Profit, International

Spirit unsterblich.

  • 已经看过的动画列表

    字数统计:103

    这是一个记录本人看过的动画的列表,列表顺序和观看顺序无关,添加顺序和观看顺序无关,列出动画仅代表完整看过,比较不喜欢的不会列出,主要角色相同的动画列为一行,不同的分多行,仅考虑 2000 年之后的动画。

  • 浅谈 The C++ Executors

    字数统计:9382

    就在 2021 年 7 月 6 号,Executors 提案又有了亿点点的更新。新的 Paper P2300R1,正式命名为 std::execution,相较于 The Unified Executor for C++,P0443R14,更系统地阐述了 Executors 的设计思路;给出了在实现上更多的说明;删除了 Executor Concept,保留并确立了 Sender/Receiver/Scheduler 模型;给出了库里应有的初始算法集合,并对之前的算法设计有不小的改动;还有更多明确的语义如任务的多发射(multi-shot)和单发射(single-shot),任务的惰性(lazy)与及时(eager)提交,等等。笔者业余时间实践的 Excutors 库也正好实践完成了 P1879R3 的内容,在 std::execution 发布的里程碑,借鄙文与大家简单聊聊 Executors。

  • C++ std::promise

    字数统计:5854

    由于 std::async 在理论和实现上并不能满足我们的需求,因为我们常常在异步操作后对异步操作的结果进行一个同步,而 std::async 并不能提供这点需求,甚至由于默认发射策略导致 std::async 很有可能退化为单线程顺序运行,所以在 std::async 的基础上提供了 std::promise。

  • C++ std::packaged_task

    字数统计:1450

    std::packaged_task 是 C++ 11 将任务进行包装的一种容器,类似于 std::async,但是 std::package_task 本身并不负责发起一个并行任务,仅仅将任务与期望包装为一个异步 Provider。

  • C++ std::async

    字数统计:5537

    std::async 是 C++11 开始支持多线程时加入的同步多线程构造函数,其弥补了 std::thread 没有返回值的问题,并在 std::thread 的基础上加入了更多的特性,使得多线程的使用更加灵活。

  • C++ std::reference_wrapper 和 std::ref

    字数统计:661

    std::reference_wrapper 是 C++ 11 开始添加的一个模板类,这个模板类的作用是将引用包装为一般对象,使之可以当作普通对象来储存和传递,std::ref 是通过 std::reference_wrapper 实现的辅助函数,用于自动构建 std::reference_wrapper 临时对象。