标签
Raymond Chen 探讨了在 C++ 中创建立即在当前线程上执行的 std::future 的变通方法,包括使用 std::promise、std::packaged_task,或使用延迟执行的 std::async 并立即等待其完成。
Raymond Chen 解释 C++ std::async 的心智模型,说明 launch 策略的两个维度(立即/延迟、同线程/新线程)中哪些组合是标准允许的,哪些被禁止或由实现决定。
本文比较了 C++ 中用于延迟执行的 std::call_once 和 std::async,讨论了它们在实现、性能和异常行为方面的差异。