Pergunta

Estou pensando em executar várias instâncias do mesmo binário java (uma aplicação de socket) com diferentes arquivos de configuração (como um parâmetro de linha de comando). Será que a JVM maneja bem esta situação? Em outras palavras Se eu não tenho quaisquer recursos comuns (arquivos que podem ser trancadas etc.) vai esta abordagem fazer quaisquer problemas? Se assim for, quais são as coisas que eu preciso ter cuidado.

Foi útil?

Solução

Se você iniciar várias instâncias do java na linha de comando que você obter várias JVMs em execução (um por exemplo).

Se houver recursos não compartilhada que você não deve ter problemas em tudo.

Outras dicas

Como Matthew apontado anteriormente, enquanto há recursos não compartilhada devemos ver sem problemas.

Só para acrescentar um pouco mais, JVM é como um recipiente que fornece um ambiente de execução de um programa java e uma JVM criado cada vez que invocar java na linha de comando.

http://en.wikipedia.org/wiki/Java_Virtual_Machine

Se você tiver muitos casos, então você pode ter um problema com o uso excessivo de memória e lento arranque vezes. Grande parte do JRE é compartilhada, mas não tudo e não no código do aplicativo geral e recursos. Alguns JREs ir até certo ponto, para corrigir isso, por exemplo versões recentes do IBM JRE 6 code share aplicação compilada.

Se todo o seu código é bem escrito (há variáveis ??estáticos mutáveis ??(incluindo singletons), por exemplo), então ele não deve ser um problema para usar um único processo.

Não há problema com isso. Na verdade, acho que o caso inverso um pouco chato -. Que não há (fácil) maneira de limitar o número de instâncias launchable dentro do mesmo computador

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top