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

What happens if future.get() is called after promise.set_value()?

我创建了一个 promise 和 future 对象:

Promise<int> p = promise<int>(); 
Future<int> f = p.get_future();

我将 promise 传递给后台线程,后台线程最终调用 p.set_value(myInt)

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

如果 f.get()p.set_value(myInt) 被调用之后 会怎样?

f.get()立即returnmyInt吗?

根据文档,它调用 wait - 为了等待结果。按照那个描述依次说明:

Blocks until the result becomes available.

这似乎意味着如果已经有结果,它不应该阻止(即使是一小段时间)。因此,除了一些合理性检查、互斥处理等,我会根据描述立即将其假设为 return。

您是遇到实际问题还是只是在询问?