Как мне запустить JAR-файл в нескольких потоках? - PullRequest
3 голосов
/ 29 марта 2012

Мне нужно запустить исполняемый файл JAR в нескольких потоках / ядрах.Файл JAR не реализует Runnable.Я искал способ сделать это и не нашел один.Можно ли заставить файл JAR использовать несколько потоков / ядер без доступа к исходному коду?

В настоящее время.если я просто запускаю JAR-файл нормально, он использует только одно ядро.

Ответы [ 3 ]

8 голосов
/ 29 марта 2012

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

3 голосов
/ 29 марта 2012

Нет, вы не можете.Вы можете запустить несколько процессов java, выполняющих один и тот же JAR, в разных потоках, но это может быть не то, что вам нужно.

1 голос
/ 29 марта 2012

Если jar является исполняемым jar, то у него есть метод main (основной класс указан в манифесте файла jar). Вы можете вызвать этот основной метод в своем собственном экземпляре Runnable.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...