싱글 톤 개체 및 동시 호출 이벤트를 처리 할 때 발생할 수있는 매우 구체적인 상황과 관련된 몇 가지 질문이 있습니다.메서드 - 로컬 변수는 어디에 저장되어 있습니까?
나는 다른 어떤 질문이 내 것과 관련되어 있다는 것을 알고 있지만, 나는 그들이 알고 싶었던 것이 아니다. (예 : Concurrently invoking Java method of singleton object) 예를 들어
말 나는이 다음 코드 :
public class MyClass{
private static MyClass myInstance = new MyClass();
private new MyClass() {}
public MyClass getInstance(){
return myInstance;
}
public String doSomething(String message){
java.util.Date d = new java.util.Date();
System.out.println(message);
System.out.println("Today is: " + d);
}
}
동시 시나리오에서하는 나는이 같은 클래스 인스턴스에게 내가 날짜 d
어떻게되는지 알고 싶어 여러 번 호출하고 변수는 메모리 현명하고, getInstance()를 호출하는 모든 사람들을 위해 다른 메모리 스택에 저장 될 것인가? doSomething()?
클래스 인스턴스가 정적이기 때문에 정적으로 선언되었지만 변경할 수있는 전역 변수가 없으므로 병행 문제가없는 다른 프로세스에 대해 개별적인 d
개체를 생성해야한다고 선언되었습니다.
누군가이 부분을 명확히 할 수 있습니까?
'싱글 톤'과 '개체'는이 질문과 관련이 없습니다. Java가 지역 변수를 어디에 두어야하는지 묻는다면 대답은 '스레드 스택'에 있습니다. – EJP