38.4. 高级 mutex 属性

以下高级 mutex 属性可以存储在 mutex 属性对象中:

mutex 属性

共享和私有 mutexes

可以在进程间使用共享 mutexes,但可以创建更多的开销。

pthread_mutexattr_setpshared(&my_mutex_attr, PTHREAD_PROCESS_SHARED);

实时优先级继承

您可以使用优先级继承来避免优先级问题。

pthread_mutexattr_setprotocol(&my_mutex_attr, PTHREAD_PRIO_INHERIT);

强大的 mutexes

当短语时,pthread 中的强大的 mutexes 将发布。然而,这会显著降低成本。这个字符串中的 _NP 表示这个选项是非 POSIX 或不可移植。

pthread_mutexattr_setrobust_np(&my_mutex_attr, PTHREAD_MUTEX_ROBUST_NP);

mutex 初始化

可以在进程间使用共享 mutexes,但是它们会产生更多的开销。

pthread_mutex_init(&my_mutex_attr, &my_mutex);