실행중인 Java 응용 프로그램이 있습니다. "개미 myapp". 이제이 애플리케이션이 스스로를 복제하고, 즉 새 프로세스에서 새로운 인스턴스를 시작하기를 원합니다.새 프로세스에서 Java 응용 프로그램 시작
나는 그것이 Processbuilder 나 Runtime.exec()와 함께 이루어져야한다는 것을 알고있다.
Processbuilder 또는 Runtime.exec ('ant myapp')를 호출하는 중이라면 새 JVM을 시작하고 별도의 프로세스에서 실행합니다. 이게 옳은 거니?
그러나 새 프로세스에서 동일한 JVM 내에서 응용 프로그램을 실행할 수 있다고 들었습니다. 어떻게해야합니까?
새 JVM이없는 경우 더 적은 메모리가 사용됩니다. 새로운 프로세스가 동일한 JVM에서 실행되는 경우 단점은 무엇입니까? 응용 프로그램의 서버에 많은 소켓 연결이 있습니다. 따라서 새로운 JVM을 만들지 않을 때 이것이 문제가 될 수 있습니까?
ExecutorService는 동일한 JVM에서 새 프로세스를 생성하기위한 것입니까? 그리고 그들은 새로운 프로세스로 운영 될 것입니까? 어떻게 프로파일 링을 할 수 있습니까? – machinery
더 나은, 안전한 스레드로 생각하십시오. 아니요, OS에서 PID로 표시되지 않습니다. 단일 JVM 내부에서 실행됩니다. VisualVM 또는 dynaTrace (내 새로운 fave)와 같은 프로파일 링 도구로 프로파일 링하십시오. – duffymo
감사합니다. Ubuntu를 실행하는 Amazon EC2 인스턴스에서 VisualVM 또는 dynaTrace를 설정하고 내 Windows 호스트에서 연결하도록 쉬운 단계별 자습서를 알고 있습니까? – machinery