質問: System.currentTimeMillis(); System.out.println(listStr.size() + " " + (ed-st)); } } }); th1.start(); ``` ### 補足情報(言語/FW/ツール等のバージョンなど) Eclipse上及び、Windowsコマンドプロンプトで、Javaをマルチスレッドで実行しても、シングルスレッドで実行しても 作業効率上げるために最適化を図ってシングルスレッドで動作しているように実行しながら マルチスレッドで扱っているということでしょうか?
回答: そもそも、「シングルスレッドのプロセスだから CPU を一つしか使わない」というわけではありません。同時に使わないだけで、実行するコアが違うことはありえます。(まあプロセススケジューラでその辺は回避するようになってはいますが) また、java をプロンプトから起動したときとは異なり、Eclipse のデバッガから動かしているのであれば、実際の java プログラムの **他** に、デバッガそのものも動いていますから、当然こちらが CPU を食っていても全然おかしくありません。 100% になっているというのはデバッガがアイドルタイムもすべて奪っているだけで、別に処理が重いことを意味しているわけではないからです。 ※デバッガは入出力から何からキャッチしようとしているでしょうから、理解できる動きです