如何判断std :: future是否有值?

时间:2015-02-02 05:27:26

标签: c++ multithreading c++11 future

请注意,这与调用valid()不同。 valid()表示未来是否具有有效的共享状态,但我想知道的是是否已设置了未来的值(即通过std::promise::set_value)。

有一个wait_for方法,但是我根本不希望调用线程被阻塞,我只想检查是否存在值。从理论上讲,我可以暂时调用wait_for,但我不知道它是否真的是这样做的首选方式,而且我不确定预期的行为是什么时候调用wait_for时间为零。

1 个答案:

答案 0 :(得分:0)

使用std :: future的目的是能够异步运行任务。因此,只有在需要值时才调用get()来调用,因为 线程阻塞,直到将来准备就绪,然后返回值。