今回は、セマフォについてやります。 セマフォはちょっと説明が難しいです。 セマフォは、現在値を持ちます。これが0以外であれば、Waitナンタラ関数 は直ちに帰ります。この時セマフォの値は1減ります。 セマフォが0になった時、Waitナンタラ関数は0より大になるまで待機します。 ロックを解放するにはReleaseSemaphore関数を使います。これにより、セマフォの値 は1増えます。 セマフォを作成するにはCreateSemaphore関数を使います。 HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, // セキュリティ記述子 LONG lInitialCount, // 初期カウント LONG lMaximumCount, // 最大カウント LPCTSTR lpName // オブジェクト名 );