gpt4 book ai didi

C++11 多线程 : State of thread after execution

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:29 28 4
gpt4 key购买 nike

线程执行完成后的状态是什么?

是执行完立即销毁还是随父线程一起销毁?

最佳答案

std::thread 对象不同于底层控制线程(尽管它们应该一对一映射)。

这种分离非常重要,它意味着 std::thread 和控制线程可以有不同的生命周期。例如,如果你在堆栈上创建你的 std::thread,你真的需要在你的对象被销毁之前调用 thread::detach(如果你没有析构函数将调用 terminate )。此外,正如 Grizzly 指出的那样,您可以在对象销毁之前调用 .join(),这将阻塞直到线程执行完成。

这也回答了您的问题 - std::thread 对象在线程完成后不会被销毁 - 它的行为与所有其他 C++ 对象一样 - 当它超出范围时将被销毁(或被删除)。

关于C++11 多线程 : State of thread after execution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18869373/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com