1

我需要一种方法来知道我正在运行的线程是否完成。如果未完成,则等待,如果完成,则打印成功消息。

我在库线程中找不到 c++11 中的方法或类似的东西。我无法设置全局变量,因为我正在使用内部线程execvp并且如果成功它不会返回。

有没有办法做到这一点?方法或标志或其他任何东西。

Edit:为了清楚起见,我想编写一个检查线程是否完成的函数。

4

1 回答 1

6

您可以使用C++11 期货和承诺

Futures 是一种在线程之间传递值的高级机制,它允许线程等待结果可用,而无需直接管理锁。

期货相对于使用普通线程的好处是:

  • 未来返回一个值。
  • 您可以通过超时等待未来。

当然,这可以使用普通线程来完成,但为什么要使用 C++11 重新实现轮子。

于 2012-11-13T11:02:31.977 回答