インテル® C++ コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
インテル® Cilk™ Plus は古い機能 (非推奨) です。代わりに、OpenMP* またはインテル® TBB を使用してください。詳細は、「インテル® Cilk™ Plus の代わりに OpenMP* またはインテル® TBB を使用するためのアプリケーションの移行」 (英語) を参照してください。
インテル® Cilk™ Plus は古い機能 (非推奨) です。代わりに、OpenMP* またはインテル® TBB を使用してください。詳細は、「インテル® Cilk™ Plus の代わりに OpenMP* またはインテル® TBB を使用するためのアプリケーションの移行」 (英語) を参照してください。
さまざまな同期メカニズムをハードウェアやオペレーティング・システム上で利用することができます。
ロックに関する次の用語と説明を理解しておくと良いでしょう。
次の用語は同じ意味で使用されます: ロック (または "mutex") の "取得"、"突入"、"ロックする"。
ロックを取得したストランド (またはスレッド) は、ロックを "所有" しているといいます。
ロックを所有しているストランドのみがロックを "解放"、"終了"、"アンロック" することができます。
一度に同じロックを所有できるストランドは 1 つだけです。
tbb::mutex は OS の mutex 操作を使用して実装されています。
ロック競合は、並列プログラムでパフォーマンス問題を引き起こします。また、ロックはデータ競合を解決しますが、ロックを使用したプログラムは非決定的になりがちです。可能な限り、ロックは使用しないようにすることを推奨します。
これらの問題 (およびその他の問題) は、次のセクションで詳しく説明しています。