一 简介
在构造std::promise对象时,该对象与新的共享状态(shared state)关联。通过调用std::promise的get_future函数,可以将该共享状态与std::future对象关联。调用之后,两个对象共享相同的共享状态,一旦由std::promise对象设置,std::future将会对其赋值。
- std::promise对象是异步提供程序(asynchronous provider),应 在某个时刻为共享状态设置一个值。
- std::future对象是个异步返回对象,可以检索共享状态的值,并在必要时等待其准备就绪。
二 例子
方法
get_future() 返回一个与promise对象的共享状态关联的std::future对象
set_value() 将值存储进共享状态即设置共享状态的值,准备就绪
void show(std::promise<int>* pProm)
{
std::cout << "showThread" << std::endl;
pProm->set_value(35);//此处不设置值将会一直阻塞
}
int main()
{
std::promise<int> promiseInt;
std::future<int> futureInt = promiseInt.get_future();//promise创建future 用来读取
std::thread th(show, &promiseInt);
std::cout << futureInt.get() << std::endl;
th.join();
return 0;
}
结果