在使用 pthread_mutex_t 之前,应该调用 pthread_mutex_init(),在不再需要它之后,应该使用 pthread_mutex_destroy() 销毁它。
我的问题是,如果我的进程在调用 pthread_mutex_destroy()(例如 SIGKILL、SIGINT 或 SIGABORT)之前终止,会发生什么情况?是否有可能某些资源会泄漏?
同样的问题也适用于 pthread_cond_init/destroy。
最佳答案
不在您可能使用的任何平台上。互斥体和条件变量等对象只是进程地址空间中的内存块。当进程终止时,其地址空间不再存在。因此任何资源都不可能泄漏。
进程共享资源更加复杂。虽然资源不会泄漏,但它们可能仍然存在,甚至可能仍在被其他进程使用。
关于c - pthread_mutex 和进程终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54974793/