マルチコアと同期
カウンタ付きのセマフォの使い方として最も適切なものはどれか。
- A1つの変数の値を、必ず2倍にする
- Bプログラムの実行をすべて1つのスレッドにまとめる
- C同時に使える数が決まっている資源(例: 接続が4本まで)を、4つのスレッドまで同時に使わせる
答えと解説を見る
正解:C. 同時に使える数が決まっている資源(例: 接続が4本まで)を、4つのスレッドまで同時に使わせる
セマフォは、残りの数を表すカウンタを持ち、使う前に1減らし(0なら増えるまで待つ)、使い終わったら1増やします。初期値を4にすれば、同時に4つまでのスレッドが資源を使えます。初期値を1にすれば、ロックのように排他に使えます。待っているスレッドは眠らせてOSが起こすのが一般的です。
- A. 値の計算をするものではありません。
- B. 並列の実行を制限するものですが、1つにまとめるわけではありません。
- C. 正しい。カウンタで残りの数を管理します。