gpt4 book ai didi

c++ - iOS 上pthread_cancel 时,堆中的内存会被释放吗?

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:43 25 4
gpt4 key购买 nike

假设我已经在我的后台线程中分配了一些内存,也就是说,一个线程堆栈持有指向该内存的指针。现在我想通过调用 pthread_cancel 来终止后台线程执行。那个内存会不会被释放? (我的平台是iOS,编译器是gcc 4.2)

最佳答案

每个线程都需要有自己的堆栈;但是通常每个进程只有一个堆。当一个线程被销毁时,没有自动机制来释放在堆上分配的内存。您最终得到的只是内存泄漏。

作为一般规则,避免使用 pthread_cancel,因为很难确保 pthread_cancel 安全运行。而是构建一些机制,您可以将消息传递给线程以销毁自身(在释放它拥有的任何资源之后)。

关于c++ - iOS 上pthread_cancel 时,堆中的内存会被释放吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5039457/

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