セマフォ
WindowsのWin32 APIでは、CreateSemaphore()関数でセマフォを生成またはオープンできる。WaitForSingleObject()関数でセマフォを待機する(カウント減少)。ReleaseSemaphore()関数でセマフォを解放する(カウント増加)。CloseHandle()関数でセマフォのハンドルをクローズする(オブジェクト破棄)。OpenSemaphore()関数で既存の名前付きセマフォをオープンできる。スレッド間同期だけでなく、プロセス間同期に使用することもできる。
MFCにはC++のコンストラクタ/デストラクタによるRAII機構を利用した、Win32同期オブジェクトのラッパークラスCSemaphoreが用意されている(実際にはCSingleLockと組み合わせて使用することが多い)。