C++的std::future_status::deferred有什么作用?
时间: 2023-06-03 10:05:30 浏览: 162
std::future_status::deferred表示由std::async()创建的异步任务将在wait()调用时才会开始执行。如果任务已经被执行,则wait()立即返回std::future_status::ready。如果任务尚未被执行,则wait()将一直等待,直到任务被执行。
相关问题
C++的std::future_status::deferred什么时候返回
在使用 std::future 和 std::promise 时,当使用 std::async 创建一个异步任务,并传递 std::launch::deferred 标记时,std::future_status::deferred 将在调用 std::future::wait_for 或 std::future::wait_until 时返回。这是因为 std::launch::deferred 标记会使异步任务在调用 std::future::get() 时才会执行,而不是在创建时立即执行。
C++的std::future_status::deferred是怎么用的?
std::future_status::deferred是std::future_status枚举类型中的一种状态,表示与异步任务相关的共享状态可以被延迟到同步调用中。具体使用可以通过std::future的构造函数参数std::launch::deferred来启动异步任务,这样可以确保任务在调用std::future::get()时被执行,而不是立即执行。当异步任务被延迟时,std::future_status::deferred状态将被返回,表示共享状态尚未准备好,需要等待同步调用执行异步任务。
阅读全文