什么时候需要 pthread_mutex_destroy?

问题描述 投票:0回答:0

我想问一下

pthread_mutex_t
的正确用法。

我知道您可以使用

pthread_mutex_init
函数进行初始化,也可以将其设置为
PTHREAD_MUTEX_INITIALIZER
并且
pthread_mutex_destroy
“破坏”互斥量。

我想知道是否可以不打电话

pthread_mutex_destroy
,在什么情况下有必要?我在这里找到了规范:here.

这是我的具体用例:

struct entries; 

struct hash_table {
  struct hash_table_entry entries[HASH_TABLE_CAPACITY];
  pthread_mutex_t fine_grain[HASH_TABLE_CAPACITY];
};

struct hash_table *hash_table_create() {
  struct hash_table *hash_table = calloc(1, sizeof(struct hash_table));
  hash_table->fine_grain = { PTHREAD_MUTEX_INITIALIZER };
  ...
}

我问的原因是负责项目的助教说:

使用锁后,确保销毁它,我们将检查内存泄漏

这不是引用分配的哈希表,而是单独的锁,所以我想知道为什么

pthread_mutex_destroy
可能永远是必要的。

c pthreads mutex
© www.soinside.com 2019 - 2024. All rights reserved.