セマフォ 単語

セマフォ

セマフォ(英:Semaphore)とは、マルチスレッドプログラミングマルチタスクプログラミングにおける排他/通知機の一つである。

概要

従来は、腕木信号機の意味。

セマフォは、カウンタ構造をしており、セマフォカウンタとも呼ばれる。

ある一定数以上のアクセスが制限されるリソースへのアクセス排他処理で用いられる。

セマフォはP操作とV操作と呼ばれる振る舞いを持つ。
P操作は、セマフォカウンタを-1する。
V操作は、セマフォカウンタを+1する。といった単純な振る舞いである。

セマフォは、初期値として任意のカウンタ値を持ち、これには、対となるリソースに、同時にアクセスできる値が設定される。

たとえば、3つのスレッドが同時にアクセス出来るリソースに対し、セマフォ機構を用いるのであれば、初期値としては、3を用意する。

4つのスレッドが同時にアクセスする場合の排他処理を考えると以下のようになる。

  1. まず、スレッド1がP操作を行った場合、セマフォのカウンタ値は2となる。
  2. 同様に、スレッド2とスレッド3がP操作を行うと、セマフォのカウンタ値は0となる。
  3. そこに、スレッド4がP操作を行おうとすると、セマフォのカウンタ値が0の為、待ち行列に入る。
  4. その際に、スレッド1がアクセス処理を終了し、V操作を行うとセマフォのカウンタ値が+1されて、待ち行列中のスレッド4がP操作を行うことが出来るようになる。

通常、セマフォは、複数のアクセスを考慮して用いられるものであるが、
初期値を1として、同時にアクセスできるスレッドを制限する事にもよく用いられる。こういったセマフォの事を、バイナリセマフォと呼ぶ。

本来は、ミューテックスがこの機に該当するため、ミューテックスが利用できる環境では、バイナリセマフォを用いるべきではない。

関連項目

この記事を編集する

掲示板

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2025/12/06(土) 09:00

ほめられた記事

最終更新:2025/12/06(土) 09:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP