как заставить java.exe использовать несколько процессоров?

как заставить java.exe использовать несколько процессоров?

Я запускаю Hudson на машине с Windows 7 (x64): он просто запускается с помощью 'java -jar hudson.war'. По какой-то причине процесс java использует только один процессор из 2 доступных, хотя он запускает несколько потоков. Я почти уверен, что поведение по умолчанию для ОС — распределить потоки многопоточной программы по процессорам, если явно не указано иное (используя какой-то API SetProcessorAffinity, если я правильно помню).

Есть ли способ заставить Java использовать несколько процессоров?

решение1

Обычно java.exeпотоки автоматически распределяются по разным ЦП.

Если этого не происходит, это может быть связано с тем, что программа ограничена вводом-выводом, а не процессором, или же потоки не могут работать одновременно из-за синхронизации.

Видетьhttp://www.oracle.com/technetwork/java/hotspotfaq-138619.html#perf_scalingдля получения более подробной информации.

Вероятно, вам придется отладить Hudson, чтобы узнать, почему он использует только один процессор.

Связанный контент