Mutex の特性

mutex に精通すると、さまざまな mutex 属性を使い分けることができます。mutex 属性は、汎用性と効率性のトレードオフに関わるため、いくつか知っておくと便利です。 適切な属性を選択することにより、パフォーマンスの向上に役立ちます。mutex の特性を次に説明します。下記の表の要約も参照してください。

次は、mutex の動作の概要です。

mutex の特徴と動作

mutex

スケーラブル

フェア

再帰

長い待機

サイズ

mutex

OS 依存

OS 依存

×

ブロック

3 ワード以上

recursive_mutex

OS 依存

OS 依存

ブロック

3 ワード以上

spin_mutex

×

×

×

イールド

1 バイト

queuing_mutex

×

イールド

1 ワード

spin_rw_mutex

×

×

×

イールド

1 ワード

queuing_rw_mutex

×

イールド

1 ワード

null_mutex[6]

null_rw_mutex

[5] イールドは、Microsoft* Windows* システムでは SwitchToThread()、別のシステムでは sched_yield() で実装されます。

[6] null mutex はスタベーションを起こさないため、インテル® TBB ではフェアと見なされています。 非スタティックなデータメンバーはありません。