gpt4 book ai didi

c++ - 当我在 C++ 中终止 pThread 时,是否会调用堆栈上对象的析构函数?

转载 作者:可可西里 更新时间:2023-11-01 15:07:11 25 4
gpt4 key购买 nike

我正在编写多线程 C++ 程序。我打算杀死线程。但是,我也在使用引用计数 GC。我想知道当线程被终止时,堆栈分配的对象是否会被破坏。

最佳答案

当您“杀死”一个线程时,堆栈不会展开。

杀死线程不是一种稳健的操作方式 - 它们打开的资源(例如文件)在进程关闭之前一直保持打开状态。此外,如果他们在您关闭它们时保持打开任何锁,则该锁可能会保持锁定状态。请记住,您可能会调用很多您无法控制的平台代码,并且您并不总是能看到这些东西。

关闭线程的优雅而稳健的方法是中断它 - 通常它会轮询以查看它是否被告知要定期关闭,或者它是否正在运行消息循环并且您向它发送退出消息。

关于c++ - 当我在 C++ 中终止 pThread 时,是否会调用堆栈上对象的析构函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2163090/

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