横取り(stolen wakeup)
起こされたスレッドがロックを再取得して戻るまでの間に、別のスレッドが先に条件を消費してしまうこと。
- 概念URI
https://comcomponent.com/knowledge/stolen-wakeup/
- 最終確認日
- 2026-08-01
- 機械可読データ
- JSON-LD
この概念が関わる関係
- Win32の条件変数は横取り(stolen wakeup)の原因になることがあります。通知側がWakeConditionVariableを呼んでから、起こされたスレッドがロックを再取得してwaitから戻るまでには必ず時間差がある。その間にロックを取れる第三のスレッドがいれば、条件を先に消費できてしまう。 / 確度: 確立した関係 / 確認日: 2026-08-22 出典
- Monitor.Wait / Pulse / PulseAllは横取り(stolen wakeup)の原因になることがあります。PulseAllは待機キューのスレッドをレディキューに移し、ロックが解放されるとレディキューのスレッドがロックを取り直せた順にWaitから戻る。取り直すまでの間に別のスレッドが条件を消費できる点はWin32と同じで、起こされたスレッドは待機に入った原因の条件を評価し直し、必要ならもう一度Waitを呼ぶ使い方が想定されている。 / 確度: 確立した関係 / 確認日: 2026-08-22 出典 出典
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。