如果线程在释放内存之前被杀死,如何释放线程分配的内存?

时间:2014-12-17 15:07:30

标签: c multithreading memory memory-management

试图在谷歌搜索这个问题的答案,但找不到它。

考虑一个线程在释放线程执行开始时分配的内存之前被杀死的情况。

thread_func() {

memory is allocated in the heap using either malloc/calloc

---thread is killed while executing---

Free(memory)

}

在这种情况下你如何释放记忆?

1 个答案:

答案 0 :(得分:1)

简单的答案是,不要终止线程,那是非常糟糕的设计。通常,这将使所有已分配的资源保持在空闲状态,并且在该过程关闭之前不会被释放。

想一想重新设计代码的方法。

例如,请阅读Microsoft文档以了解所有风险。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms686717(v=vs.85).aspx