2014-06-18 1 views
0

한 번에 같은 시스템에서 동일한 응용 프로그램 인스턴스 2 개 (java - jar MyApp.jar 사용)를 실행하고 있습니다. 내 수업 중에 하나는 클래스 수준의 변수 (정적)를 만들었습니다. 두 응용 프로그램이 동일한 JVM에서 실행중인 것과 동일한 정적 변수를 공유하는지 또는 두 인스턴스 모두에 대해 별도의 JVM 인스턴스가 작성됩니까?JVM 정적 변수

별도의 JVM 인스턴스가 생성되는 경우 클래스 로더가 정적 변수 인 My 클래스의 두 인스턴스를로드합니까?

맞춤 클래스 로더를 사용하지 않습니다. *

답변

1

아니요, 동일한 변수를 공유하지 않습니다.

각 프로세스는 자체 메모리 공간이 할당되며 IPC 또는 다른 프로세스 통신 프로토콜이 사용되지 않는 한 다른 프로세스의 메모리에 액세스 할 수 없습니다.

0

java - jar MyApp.jar으로 전화하면 새로운 JVM이 시작됩니다. 이 JVM은 자체 클래스를로드하고 고유 한 메모리와 자체 스레드를 갖습니다 (등등). 이전 또는 이후에 시작된 다른 JVM과는 아무 것도 공유하지 않습니다. 두 JVM은 어떤 식 으로든 서로 연결되어 있지 않습니다. 방금 두 번 앱을 시작하십시오.