como faço java.exe usar várias cpu's?

1

Estou executando o Hudson em uma máquina com Windows 7 (x64): isso é simplesmente iniciado usando 'java -jar hudson.war'. Por algum motivo, o processo java usa apenas uma cpu, de 2 disponíveis, embora esteja executando vários threads. Eu tenho certeza que o comportamento padrão para o sistema operacional é espalhar os threads de um programa multi-thread através de CPU, a menos que seja explicitamente dito o contrário (usando alguma API SetProcessorAffinity se bem me lembro).

Existe uma maneira de dizer ao java para usar vários cpu's?

    
por stijn 02.11.2010 / 20:59

1 resposta

2

Normalmente, java.exe colocará automaticamente threads em CPUs diferentes.

Se isso não acontecer, pode ser porque o programa é vinculado a E / S, em vez de vinculado à CPU, ou porque os encadeamentos não podem ser executados simultaneamente devido à sincronização.

Veja o link para mais informações.

Você provavelmente terá que depurar o Hudson para saber por que ele usa apenas um processador.

    
por 02.11.2010 / 21:27