Во время выполнения.getRuntime().availableProcessors()

Я пытаюсь проверить производительность системы во время запуска программы

я ссылаюсь на этот пост получить системную информацию уровня ОС

при этом Runtime.getRuntime().availableProcessors(); execute я получил ответ 4

я прочитала availableProcessors() но он говорит, что этот метод возвращает количество процессоров

  1. может ли кто-нибудь объяснить, что означает количество процессоров ?
  2. почему я получаю 4 в результате ?

Я использую Windows 7 core i5 4gp.

большое спасибо

5 ответов


количество процессоров-это в основном количество исполнительных механизмов, способных запускать ваш код. Одним из вариантов i5 является 4-ядерный процессор серии i5-7. Это могут быть физически разные процессоры (даже если они существуют внутри одного чипа) или логические процессоры при использовании hyper-threading.

см.http://en.wikipedia.org/wiki/Intel_Core#Core_i5 и http://en.wikipedia.org/wiki/Hyper-threading Для больше деталь.


Как вы читали, availableProcessors() - это метод, который возвращает number of processors available to the JVM. 4 означает количество процессоров, доступных в настоящее время для JVM.

эти строки вернуть number of logical cores в Windows и других операционных систем.

на компьютере с квад-сердечника сердечника i7 поддержка Многопоточность, он вернется 8.

на компьютере с четырехъядерных процессоров Q6700 этот метод возвращает 4.


У вас многоядерный процессор (в вашем случае, похоже, это Линфилд). Каждое ядро считается отдельным процессором (отдельным процессором) для целей информации, поскольку каждое ядро может выполнять инструкции одновременно с другими.


Он не дает никаких ядер, доступных для процесса jvm. он может быть больше, чем фактический, если включена hyper threading.


в этом контексте "процессор" - это" оборудование, способное к независимому выполнению", т. е. cpu базовый.

Это не "пакет процессора" - единственный аппаратный блок, который вы покупаете (это фактически 4 независимых процессора в одном пакете)