27.4. 拡張ミューテックス属性

以下の拡張ミューテックス属性は、ミューテックス属性オブジェクトに格納できます。

ミューテックス属性

共有およびプライベートのミューテックス

共有ミューテックスはプロセス間で使用できますが、大きなオーバーヘッドが発生します。

pthread_mutexattr_setpshared(&my_mutex_attr, PTHREAD_PROCESS_SHARED);

リアルタイム優先度の継承

優先度の継承を使用して、優先度が反転する問題を回避できます。

pthread_mutexattr_setprotocol(&my_mutex_attr, PTHREAD_PRIO_INHERIT);

強固なミューテックス

pthread が停止すると、pthread の下の強固なミューテックスが解放されます。ただし、これによりオーバーヘッドコストが高くなります。この文字列の _NP は、このオプションが非 POSIX であるか、移植性がないことを示します。

pthread_mutexattr_setrobust_np(&my_mutex_attr, PTHREAD_MUTEX_ROBUST_NP);

ミューテックスの初期化

共有ミューテックスはプロセス間で使用できますが、大きなオーバーヘッドが発生します。

pthread_mutex_init(&my_mutex_attr, &my_mutex);