2017-02-23 10 views
2

Я понимаю, что мы можем легко использовать все доступные ядра ЦП с использованием параллельных потоков или потоков на Java.Многопроцессорное программирование

Однако, скажем, мой рабочий стол имеет два физических процессоров (да, я имею в виду центральных процессоров не ядро), будет JVM использовать их как (учитывая, что они доступны, конечно), так же, как это делает с процессором Сердечники?

Спасибо!

+0

Пожалуйста, прочтите мой вопрос еще раз, я говорю о многопроцессорных и НЕ-многоядерных процессорах. – FelipeKunzler

+0

О какой JVM вы говорите? – weston

+0

Не все конкретно, возможно ли это в зависимости от JVM? – FelipeKunzler

ответ

4

JVM это просто спецификация, что:

... опускает детали реализации, которые не являются необходимыми для обеспечения совместимости: расположение памяти областей данных во время выполнения, алгоритм сборки мусора используется, и любая внутренняя оптимизация инструкций виртуальной машины Java (их перевод в машинный код)

Еще одна деталь реализации, в которой используется физическое оборудование. Я мог бы написать свою собственную реализацию JVM, которая просто использует только один процессор, или я могу написать тот, который использует более одного.

Отказ от использования педантизма, я бы предположил, что все коммерческие JVM видят несколько процессоров точно так же, как и несколько ядер, поскольку они обычно работают поверх операционных систем, которые также абстрагируют аппаратные детали о процессорах и ядрах (включая виртуальные ядра) и представить их все как процессоры для программного обеспечения, работающего поверх этой ОС.

Смежные вопросы