37.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);