/**
*
* 设计模式:单例设计模式(懒汉式)
* 1.构造器的私有化(防止外面再创建新对象)
* 2.声明一个private的静态变量
* 3.创建一个对外的公共的静态的方法,以访问该方法来创建对象(具体是实现创建对象是依据类内是否已经存在对象)
* @author lzd
* 设计模式:单例设计模式(饿汉式)
* 1.构造器的私有化(防止外面再创建新对象)
* 2.声明一个private的静态变量,并同时创建一个对象。
* 3.创建一个对外的公共的静态的方法,通过该方法来访问该对象(不提供创建对象功能)
*
*
*/
class SingleInstanceDesign {
private SingleInstanceDesign(String name)
{
System.out.println("HelloWorld" + name);
}
private static SingleInstanceDesign instanceDesign = null; // hunger model for this style
/*
* 这里最重要的是使用了双重检查的做法来提高安全和执行的效率。
* (实现方式是:避免它没有意义的进入同步锁中)
*/
public static SingleInstanceDesign getInstance(String name) {
if(instanceDesign == null)
synchronized(SingleInstanceDesign.class)
{
if (instanceDesign == null) {
instanceDesign = new SingleInstanceDesign(name);
}
}
return instanceDesign;
}
public static void main(String[] args)
{
testThread t = new testThread();
Thread thread1 = new Thread(t, "1");
Thread thread2 = new Thread(t, "2");
thread1.start();
thread2.start();
}
}
class testThread implements Runnable
{
@Override
public void run() {
System.out.println(SingleInstanceDesign.getInstance("lzd"));
}
}
单例设计模式+java线程(synchronized)
最新推荐文章于 2023-10-10 14:18:32 发布