23 가지 디자인 모델 의 단일 예 모드(스 레 드 안전)
단일 모델 은 시스템 에서 특정한 유형 에 대해 하나의 대상 만 있 을 수 있 고 두 번 째 대상 이 나 올 수 없다 는 것 이다.
단일 모델 도 23 에서 디자인 모델 에서 면접 을 볼 때 코드 를 쓰 라 고 요구 하 는 소수의 모델 중 하나 이다.주로 다 중 스 레 드 아래 단일 모델 의 스 레 드 안전성 문 제 를 고찰 한다.
1.다 중 스 레 드 보안 단일 모드 인 스 턴 스 1(동기 화 잠 금 사용 하지 않 음)
public class Singleton {
private static Singleton sin=new Singleton(); //
private Singleton(){ ///private , new
}
public static Singleton getSin(){ /// public
return sin;
}
}
상기 코드 의 단점 중 하 나 는 이 종 류 를 불 러 올 때 바로 new 정적 대상 이 나 오 는 것 입 니 다.시스템 에 이런 종류 가 많 을 때 시작 속도 가 느 려 집 니 다.현재 유행 하 는 디자인 은 모두'로드 지연'을 말 하 는데 우 리 는 처음 사용 할 때 첫 번 째 대상 을 초기 화 할 수 있다.그래서 이런 건 작은 시스템 에 적합 하 다.
2.다 중 스 레 드 보안 단일 모드 인 스 턴 스 2(동기 화 방법 사용)
public class Singleton {
private static Singleton instance;
private Singleton (){
}
public static synchronized Singleton getInstance(){ //
if (instance == null)
instance = new Singleton();
return instance;
}
}
상기 코드 중 한 번 에 잠 긴 방법 이 있 습 니 다.이 입도 가 좀 큽 니 다.개선 은 그 중의 new 문 구 를 잠 그 면 OK 입 니 다.이른바'이중 자물쇠'메커니즘 이다.
3.다 중 스 레 드 보안 단일 모드 인 스 턴 스 3(이중 동기 화 잠 금 사용)
public class Singleton {
private static Singleton instance;
private Singleton (){
}
public static Singleton getInstance(){ //
if (instance == null){
synchronized(Singleton.class){
if (instance == null)
instance = new Singleton();
}
}
return instance;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.