C++ 如果在promise.set_value()之后调用future.get(),会发生什么情况?

C++ 如果在promise.set_value()之后调用future.get(),会发生什么情况?,c++,multithreading,promise,future,race-condition,C++,Multithreading,Promise,Future,Race Condition,我创建承诺和未来对象: Promise<int> p = promise<int>(); Future<int> f = p.get_future(); Promise p=Promise(); Future f=p.获取未来(); 我将承诺传递给后台线程,它最终调用p.set\u value(myInt) 在主线程中,我调用f.get() 如果在调用p.set\u值(myInt)之后调用f.get(),该怎么办 将f.get()根据调用的文档立即返回m

我创建承诺和未来对象:

Promise<int> p = promise<int>(); 
Future<int> f = p.get_future();
Promise p=Promise();
Future f=p.获取未来();
我将承诺传递给后台线程,它最终调用
p.set\u value(myInt)

在主线程中,我调用
f.get()

如果在调用
p.set\u值(myInt)
之后调用
f.get()
,该怎么办


f.get()
根据调用的文档立即返回
myInt

,以等待结果。反过来,根据该描述,声明:

块,直到结果变为可用

这似乎意味着,如果已经有结果,它就不应该阻止(即使是很短的一段时间)。因此,除了一些健全性检查、互斥体处理等之外,我假设它会按照描述立即返回


你真的有问题吗?还是你只是在问?

我好像有问题,所以我决定问。但这个问题现在已经解决了。