セマフォ
セマフォ(英: semaphore)とは、計算機科学において、並行プログラミング環境での複数の実行単位(主にプロセス)が共有する資源にアクセスするのを制御する際の、単純だが便利な抽象化を提供する変数または抽象データ型である。
.NET Framework 2.0以降では、System.Threading.Semaphore クラスを使う。バージョン1.1以前では自作するかWin32 APIを呼び出す必要がある。ローカルセマフォはスレッド間同期にのみ使用できるが、名前付きシステムセマフォはプロセス間同期に使用することもできる。Semaphoreクラスは.NET Coreおよび.NET 5以降でも利用可能だが、Windows以外のプラットフォームではスレッド間同期にのみ使用でき、プロセス間同期には使用できない。
.NET Framework 4.0以降では、同一プロセス内のスレッド間同期であれば、軽量化されたSystem.Threading.SemaphoreSlim クラスを利用できる。