gpt4 book ai didi

c++ - std::async - std::launch::async | std::launch::deferred

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:50 24 4
gpt4 key购买 nike

我理解 std::async 对以下参数的作用。

  • std::launch::async
  • std::launch::deferred

然而,std::launch::async | 会发生什么? std::launch::deferred?

最佳答案

std::launch::async | 的启动策略std::launch::deferred 意味着实现可以选择是否应用 std::launch::asyncstd::launch::deferred 。这个选择可能因电话而异,可能不会立即决定。

因此,总是选择一个或另一个的实现是合法的(这是 gcc 所做的,总是选择延迟),选择 std::launch::async 直到达到某个限制也是如此到达,然后切换到 std::launch::deferred

这也意味着实现可以将选择推迟到以后。这意味着该实现可能会等待做出决定,直到它的手被一个与延迟和异步任务具有明显不同效果的调用强制执行,或者直到正在运行的任务数量小于内部任务限制。这就是just::thread

强制决定的函数有:wait(), get(), wait_for(), wait_until() ,以及引用结果的最后一个 future 对象的析构函数。

关于c++ - std::async - std::launch::async | std::launch::deferred,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9359981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com