首页 > 解决方案 > pthread_mutex 和进程终止

问题描述

在使用 pthread_mutex_t 之前,应该调用 pthread_mutex_init(),在不再需要它之后,应该使用 pthread_mutex_destroy() 将其销毁。

我的问题是,如果我的进程在调用 pthread_mutex_destroy()(例如 SIGKILL、SIGINT 或 SIGABORT)之前终止会发生什么?是否有可能某些资源会泄漏?

同样的问题也适用于 pthread_cond_init/destroy。

标签: clinuxmultithreadingpthreads

解决方案


不在您可能使用的任何平台上。像互斥锁和条件变量这样的对象只是进程地址空间中的一块内存。当一个进程终止时,它的地址空间将不复存在。因此,任何资源都不可能泄漏。

进程共享资源更加复杂。虽然资源不会泄漏,但它们可能仍然存在,甚至可能仍在被其他进程使用。


推荐阅读