我需要一种方法来了解我正在运行的线程是否已完成。如果没有完成,则等待,如果完成则打印成功的消息。
我从库线程中找不到c ++ 11中的方法或类似的东西。
我无法设置全局变量,因为我正在使用execvp
内部线程,如果成功则不会返回。
有没有办法做到这一点?方法或旗帜或其他任何东西。
Edit:
为了说清楚,我想编写一个检查线程是否完成的函数。
答案 0 :(得分:6)
您可以使用C++11 futures and promises:
Futures是一种在线程之间传递值的高级机制,允许线程等待结果可用而无需直接管理锁。
期货优于使用普通线程的好处是:
当然,这可以通过普通线程完成,但为什么要用C ++ 11重新实现轮子。