类模板std::promise提供一种设施用以存储一个值或一个异常,之后通过std::promise对象所创建的std::future对象异步获得。注意std::promise只应当使用一次。 每个承诺体都与一个共享状态 关联,其中含有一些状态信息和一个结果,它可能尚未求值,已求值为一个值(可能为void),或者求值为一个异常。承诺可以对共享状...
set_value、set_exception、set_value_at_thread_exit和set_exception_at_thread_exit的操作表现类似。在更新承诺体对象时获得与该承诺体对象关联的一个互斥体。 对此函数的调用和对get_future的调用之间不会造成数据竞争(因此它们不需要彼此同步)。 参数
如字面描述,在线程退出后,将共享状态的值设定,如: (参考网站:CSDN、cppreference.com、cplusplus.com等) (参考书目:《深入理解C++11》、《深入应用C++11》等)
并且一个关联状态对象在一个时刻只能被一个future和一个promise所链接,如果被多个链接则会抛出异常 CPP Reference中有一句话刻意描述了这句话,截图如下所示 上面的最后一段话,中文含义是:注意std::future所引用的共享状态是不和任何其他异步操作所返回的future对象所共享的(与之对应的是std::shared_future) 并且异步...
promise cppreference.com Create account Page Discussion Standard revision:DiffC++98/03C++11C++14C++17C++20C++23C++26 View Edit History std::promise<R>::promise C++ Concurrency support library std::promise promise(); (1)(since C++11) template<classAlloc>...
std::promise<R>::set_value Main template voidset_value(constR&value); (1)(since C++11) voidset_value(R&&value); (2)(since C++11) std::promise<R&>specializations voidset_value(R&value); (3)(since C++11) std::promise<void>specialization ...
std::promise - cppreference.com std::future - cppreference.com std::shared_future - cppreference.com 请注意,上述示例代码仅用于演示std::promise和std::future的基本用法,并未涉及std::shared_future。在实际应用中,你可以根据需要使用std::shared_future来共享异步操作的结果。
代码语言:txt 复制 © cppreference.com 在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。 http://en.cppreference.com/w/cpp/线程/诺言/SET[医]价值[医]在[医]螺纹[医]出口 本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com最后更新于:2017-12-18 ...
参考官方例子: std::future - cppreference.com std::promise - cppreference.com发布于 2022-03-28 22:57 高并发 并发 C / C++ 赞同1添加评论 分享喜欢收藏申请转载 写下你的评论... 还没有评论,发表第一个评论吧关于...
cpp std::promise<int> promiseObj; promise 对象是异步 Provider,它可以在某一时刻设置共享状态的值。 future 对象可以异步返回共享状态的值,或者在必要的情况下阻塞调用者并等待共享状态标志变为 ready,然后才能获取共享状态的值。 future 与 promise 配合使用的示例: ...