タグ

#C|C++に関するareyoukicking2のブックマーク (1)

  • セマフォ - ファイヤープロジェクト

    共有メモリの話題に入る前の準備としてセマフォについて記述する. 同期の問題 セマフォとは セマフォを使ってみる セマフォと共有メモリ 同期の問題二つのプロセス(もしくはスレッド)A,Bが共有する変数xがあったとする.そしてA,B両者がxに1を足すとする.xが0なら処理後のxの状態が2になっていることを期待してみる. Aがx(=0)の値を読み込む. Aがx(=0)に1を足してそれをxに書き込む. Bがx(=1)の値を読み込む. Bがx(=1)に1を足してそれをxに書き込む. この時x=2. 上は「たまたま」正常なタイミングで動作した場合である.もしかしたら以下の状況なるかもしれない. Aがx(=0)の値を読み込む. Bがx(=0)の値を読み込む. Aがx(=0)に1を足してそれをxに書き込む. Bがx(=0)に1を足してそれをxに書き込む. この時x=1. 期待に反してx=1となってしまった

  • 1