スレッドのスリープ解決がどのように機能するか、および単純に sleep() の解決を超えてそれが何に結び付けられているかについて詳しく知りたいです。
オペレーティングシステムによって定義されており、Windowsでは通常15msであることを知っています。最近見回してこれを確認することはできませんでしたが、この15ミリ秒がOSによってループされ、すべてのスレッドに対して「グローバル」であることを漠然と思い出しました。つまり、スレッドがスリープできる最小時間は15ミリ秒ではなく、 sleep(1) の最大値。そうですか?すべてのオペレーティング システムで同じですか (期間を超えて)?
これが問題になる状況は考えられませんが、このスリープ サイクルのアクション ポイントでスレッドの偽のウェイクアップが常に発生するのでしょうか、それともいつでも発生する可能性がありますか?
同期されたブロックで、待機中のスレッドは効果的にスリープ (1) し、各サイクルでロックをチェックしていますか? または、ブロックを終了するスレッドが待機中のスレッドを即座にウェイクアップしますか? これはすべてのオペレーティング システムで同じですか?
スレッドがwait()の後にnotify()された場合、ロックを待っている間、上記と同じ方法で処理されますか?それとも別の方法で処理されますか?
パフォーマンスの観点から、15 ミリ秒のループが関連する他の時間はありますか?