디자인 모드 - 굶 주 림 식, 게 으 른 식
6273 단어 디자인 모드
4. 567917. 2.1 굶 주 린 사람 식: 단일 클래스 가 메모리 에 들 어가 자마자 대상 을 만 들 었 습 니 다
class Single{
private Single(){}
private static Single s = new Single();
public static Single getInstance(){
return s;
}
}
2.2 : , , 。
class SingleDemo {
private static SingleDemo s = null;
private SingleDemo(){}
public static synchronized SingleDemo getInstance(){
if(s == null){
s = new SingleDemo();
}
return s;
}
}
3. 굶 주 린 한식 일례
class SingletonDemo{
public static void main(String[] args) {
Student s1 = Student.getStudent();
s1.setAge(12);
Student s2 = Student.getStudent();
s2.setAge(30);
System.out.println(s1.getAge());
System.out.println(s2.getAge());
}
}
class Student{
private int age;
private static Student s = new Student();
private Student(){}
public static Student getStudent(){
return s;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
4. 게으름뱅이 식 의 일례 게으름뱅이 식 은 단선 에서 게으름뱅이 식 과 굶 주 린 한식 의 차이 가 없다.그러나 다 중 스 레 드 환경 에서 굶 주 린 사람 은 문제 가 없고 게 으 른 사람 은 여러 가지 사례 를 만 들 수 있다.따라서 스 레 드 동기 화 (synchronized) 를 사용 하여 다 중 스 레 드 환경 에서 여러 개의 인 스 턴 스 를 만 들 지 않도록 해 야 합 니 다.
게으름뱅이 싱글 스 레 드
class Demo{
public static void main(String[] args) {
SingleDemo s1 = SingleDemo.getInstance();
SingleDemo s2 = SingleDemo.getInstance();
System.out.println(s1 == s2);
System.out.println(s1);
System.out.println(s2);
}
}
class SingleDemo {
private static SingleDemo s = null;
private SingleDemo(){}
public static SingleDemo getInstance(){
if(s == null){
s = new SingleDemo();
}
return s;
}
}
게으름뱅이 다 중 스 레 드
class SingletonDemo2{
public static void main(String[] args) {
RunDemo r1=new RunDemo();
RunDemo r2=new RunDemo();
Thread t1=new Thread(r1);
Thread t2=new Thread(r2);
t1.start();
t2.start();
}
}
class RunDemo extends Thread{
public void run(){
System.out.println(SingleDemo.getInstance());
}
}
class SingleDemo {
private static SingleDemo s = null;
private SingleDemo(){}
public static synchronized SingleDemo getInstance(){
if(s == null){
s = new SingleDemo();
}
return s;
}
}
게으름뱅이 식 의 목적 은 성능 을 향상 시 키 기 위해 synchronized 는 성능 을 떨 어 뜨 렸 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.