掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WaitForSingleObjectのシグナル状態について (ID:38974)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
WaitForSingleObject関連でお聞きしたいのですが、シグナル状態と非シグナル状態の定義がいまいちわかりません。 例えば3つのスレッドがアクセスしてその各Handleのシグナル状態をWaitForSingleObjectで監視しているとします。 スレッド1の処理 → スレッド2の処理(WaitForSingleObject-1) → スレッド3処理(WaitForSingleObject-2) という流れだとします。 スレッド1処理でまだアクセス権がリリースされていない状態で2つめが入ってきた場合はWaitForSingleObject-1は非シグナル状態であるのはわかります。 その間に3つめのスレッドが来た場合WaitForSingleObject-2も非シグナル状態であり、WaitForSingleObject-2で待ち処理になると思いますが、 最初のスレッドがリリースされた場合、WaitForSingleObject-1だけシグナル状態になり待ち状態が終わりますよね。WaitForSingleObject-2は待ち続け、スレッド2の処理がリリースされたら、WaitForSingleObject-2待ちが終わると思います。 これはどういった流れでそうなっているのでしょう。前の処理の終了を見てシグナル、非シグナルを決めているのでしょうか?最初はスレッド1が終わった時点でスレッド2、スレッド3がはしってしまうのでは?というイメージがありました。 内部の動きがよくわかりません。 詳しい方、教えていただけますか? よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.