33.4. 拡張ミューテックス属性
共有ミューテックス、優先度継承、堅牢なミューテックスなどの高度なミューテックス属性は、ミューテックス属性オブジェクトに格納することで、標準的なミューテックスの動作を超える追加機能を提供できます。
33.4.1. ミューテックス属性 リンクのコピーリンクがクリップボードにコピーされました!
- 共有およびプライベートのミューテックス
プロセス間で共有ミューテックスを使用することは可能ですが、リソース使用量を大幅に増加させる可能性があります。
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);