< 目次

インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB) ミューテックス

インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB) では、オブジェクトへの相互排他的なアクセスを行うため、共有オブジェクトにミューテックスを関連付けることができます。ミューテックスは、ロックまたはアンロックのいずれかの状態になります。安全にオブジェクトにアクセスするため、スレッドは次の操作を行います。

ミューテックスがロックされていると、ほかのスレッドがロックを取得しようとしても、最初のスレッドがミューテックスのロックを解放するまでストールします。ミューテックスによって提供される機能は、インテル® Advisor アノテーションの ANNOTATE_LOCK_ACQUIRE()ANNOTATE_LOCK_RELEASE() で意図されるセマンティクスです。

oneTBB では、アノテーションのロックアドレスがミューテックス・オブジェクトとなります。ANNOTATE_LOCK_ACQUIRE()ANNOTATE_LOCK_RELEASE() アノテーションは、このミューテックス操作となります。

oneTBB は、異なるプロパティーを持ついくつかのロッククラスを提供しています。詳細は、oneTBB のドキュメントを参照してください。どのタイプのミューテックスが適切であるか明確でない場合、最初の選択肢として tbb::mutex を使用することを検討してください。

関連情報