2012-07-13 3 views
2

java에서 static 변수의 인스턴스는 하나 뿐이며 동일한 환경의 모든 스레드간에 값이 공유됩니다.하지만 내 질문은 응용 프로그램이 클러스터에 배포 될 때 값 응용 프로그램이 액세스되고 클러스터의 다른 인스턴스에 의해 변경된 경우에도 동일하게 유지됩니까?클러스터에서의 정적 변수 액세스

또는 클러스터의 각 인스턴스에 대해 변경되거나 동일하게 유지됩니까?

+0

클러스터가 무엇을 의미하는지 지정해야합니까? 어떤 기술을 사용하고 있습니까? – adranale

+0

Glassfish App 서버에서 ... 단일 클러스터의 다른 인스턴스 컴퓨터에서 배포 된 응용 프로그램에 충돌이 발생했습니다. – ashwinsakthi

답변

1

클러스터에서 실행중인 JVM의 각 인스턴스에 대해 동일합니다. differenr JVM을 실행하는 다른 인스턴스가있을 것입니다. 더 정확하게 말하자면, 같은 JVM 내에서 여러개의 클래스 로더가있을 수 있기 때문에, 각각은 그들 자신의 인스턴스를 가질 것입니다.

2

여러 JVM 공유 메모리가 있는지 묻는 경우, 아니오, 그렇지 않습니다.

각 JVM은 클래스 및 정적 필드의 자체 복사본을 가져옵니다.

1

클러스터 정의가 확실하지 않습니다. 그러나 서로 다른 JVM이 함께 작동한다는 것을 의미하면 정적 변수는 JVM 당 하나입니다.
예 :
클러스터에 10 개의 JVM이있는 경우 정적 변수의 인스턴스가 각각 10 개씩 서로 독립적입니다.