假设我们有一个使用静态初始化器初始化的全局互斥锁或 rwlock:
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
or
pthread_rwlock_t lock = PTHREAD_RWLOCK_INITIALIZER;
文档说它相当于pthread_*_init
使用默认参数。
我们是否必须销毁以这种方式初始化的互斥体或 rwlock?
不。静态分配和动态分配的互斥体之间的区别基本上与位于堆栈或堆中的变量相当。您不必归还未动态分配的互斥锁。
引用 Michael Kerrisk 的《Linux 编程接口》:
当不再需要自动或动态分配的互斥锁时,应使用 pthread_mutex_destroy() 销毁它。 (没有必要对使用静态初始化的互斥体调用 pthread_mutex_destroy()
PTHREAD_MUTEX_INITIALIZER。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)