0

特定のフレームワークのパフォーマンスに対する特定のメソッドの計算時間の影響を測定するプロジェクトに取り組んでいます。さまざまな時間の sleep() で十分かどうか疑問に思っていましたか? 特に、大規模なスレッド並列である fork/join フレームワークの場合、sleep() は x 実数秒待機する必要があります。つまり、スレッド Y が実行されているとき、実行されていないスレッド Z のスリープはカウントされません。スリープは、いわば現在のスレッドに対してプロセッサをロックしたままにする必要があります。

基本的に、sleep(x) は有効な実行時間 x 秒間スリープしますか、それともスレッドがアイドル状態の時間をカウントしますか?

かなり基本的な質問のように見えて適切な用語を知らないためか、オンラインで情報を見つけることができません。

4

2 に答える 2

0

sleep() は現在のスレッドでプロセッサをロックしたままにしません。プロセッサはスレッドを非アクティブな状態のままにして、他のスレッドで作業を続けます。

于 2012-11-28T11:01:43.503 に答える
0

Thread.sleep() は、名前が示すようにスレッドをスリープ状態にします。意図的かつ意図的にスレッドを停止し、OS がウェイクアップ時に別の CPU でスレッドを開始する可能性があります。

何をしようとしているのか、またはスレッドをスリープ状態にする場合にコアにロックする必要があるのか​​ は明確ではありません。

于 2012-11-28T10:55:22.753 に答える