![](/img/trans.png)
[英]Is it ok to destroy a std::promise before future.get() is called?
[英]What happens if future.get() is called after promise.set_value()?
我创建了一个 promise 和未来的对象:
Promise<int> p = promise<int>();
Future<int> f = p.get_future();
我将 promise 传递给后台线程,该线程最终调用p.set_value(myInt)
。
在主线程中,我调用f.get()
。
如果在调用 p.set_value(myInt f.get()
之后调用p.set_value(myInt)
会怎样?
f.get()
会立即返回myInt
吗?
根据文档,它调用wait - 为了等待结果。 反过来,根据该描述,它指出:
阻塞直到结果可用。
这似乎意味着如果已经有结果,它不应该阻止(即使是一小段时间)。 因此,除了一些健全性检查、互斥处理等,我会假设它会按照描述立即返回。
你有一个实际的问题还是你只是在问?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.