繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM