ロック (計算機科学)
プラットフォーム(OS)やプログラミング言語によっては、様々なロックをサポートしている。
POSIXスレッドAPIはロックサポートを提供する。Microsoft WindowsはWindows APIによってスレッド間およびプロセス間のロックサポートを提供する。
CとC++はプラットフォーム(OS)固有のロック機能やAPIに容易にアクセス可能であるが、C99までのISO/IEC標準では、スレッドや排他制御のための標準APIは存在しなかった。C11以降はPOSIXスレッドベースのスレッドライブラリを標準化したが、必須ではなくオプション扱いである。C++03までのISO/IEC標準でも、同様にスレッドを標準サポートしていなかったが、C++11以降はBoost C++ライブラリをベースに標準化されたスレッディング機能をサポートしている。OpenMP標準は一部コンパイラがサポートしており、プラグマを使ってクリティカルセクションを指定できる。Visual C++ ではコードに synchronize 属性を付与でき、同期しなければならないメソッドを指定できるが、Windowsアーキテクチャと Visual C++ コンパイラにおける「COMオブジェクト」固有である。
ロックの粒度 (Granularity) を説明する前に、ロックに関する3つのコンセプトを説明する。