如果在 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。
您是遇到实际问题还是只是在询问?
我创建了一个 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。
您是遇到实际问题还是只是在询问?