2013-05-20 2 views
1

я запустить свою программу с использованием Maven с помощью следующей команды:процесс Java ест только 1 ядро ​​центрального процессора

mvn exec:java -Dexec.mainClass="some.path.to.my.class" 

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

Какие параметры мне нужно установить и как я могу передать их с помощью команды mvn exec:java?

+0

Вы можете попробовать многопоточность, чтобы использовать больше, чем ядро ​​в java –

+0

, это зависит от того, сколько одновременно работающих потоков есть приложение. – Peeyush

+0

@AsierAranbarri, так как я могу делать многопоточность? я должен положить его в код? потому что я использую внешние библиотеки, предназначенные для запуска также в кластере, и они должны иметь его уже внутри. – ulkas

ответ

1

Вы бы установить его в разделе commandlineArgs конфигурации в вашем ПОМ, как описано в documentation

например:

<build> 
<plugins> 
    <plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.2.1</version> 
    <executions> 
     <execution> 
     <goals> 
      <goal>exec</goal> 
     </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <executable>maven</executable> 
     <commandlineArgs>-server</commandlineArgs> 
    </configuration> 
    </plugin> 
</plugins> 

Хотя я не совсем уверен, что это ваша проблема - вы определенно написали многопоточный код? Вам не нужно запускать JVM в режиме сервера, чтобы использовать несколько потоков.

+0

, чтобы сделать это из командной строки, это было бы просто -Dexec.args = "- server" –

+0

thx для ответа, но использование параметров командной строки не помогло с проблемой только 1 ядро ​​ – ulkas

+0

OK ... как я спросил, вы уверены, что имеете многопоточный код? Вы использовали Thread/Executor/ExecutorService в любом месте вашего кода? –

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