私はJavaで簡単なプログラムを作成しました:
public static void main(String[] args) throws InterruptedException {
while (true)
;
}
これをLinuxマシンで実行すると、100%のCPU使用率が表示されますが、OSが遅く見えることはありません。ただし、Windowsでまったく同じコードを実行すると、CPU使用率が約20%しか表示されません。
WindowsではOracle JRE、LinuxではOpenJDK 6を使用しています。
Windowsのスケジューラがスレッドをランダムにプリエンプトし、Linuxがプリエンプトしないのだろうか?
5
これは、オペレーティングシステムのタスクスケジューリングに依存します。
—
Subhrajyoti Majumder 2013
コアはいくつありますか?すべてのコアがビジーの場合、Windowsタスクマネージャーは100%を報告します。あなたのLinuxツールは似たようなことをしますか、それとも1コアの作業の100%を報告しますか、そしてすべてのコアがビジーであるとき、それはそう
—
2013年
100*N cores %
ですか?
私は4つのコアを持っており、Linuxではシステムモニターツールを使用しています
—
Maniek
@Quoiそうではありません。そのプログラムがすべて実行されている場合、スレッドはWindowsとLinuxの両方で中断されることなく実行されます。
—
David Heffernan 2013年