<h5> 多线程单例模式</h5> <h1>懒汉模式:下面代码是使用双重判断的模式实现懒汉式操作</h1> <p>/*</p> <p>单例设计模式:有两个:饿汉式和懒汉式</p> <h2>//饿汉式</h2> <p>class Single</p> <p>{</p> <p>private static final Single s = new Single();</p> <p>private Single(){}</p> <p>public static Single getInstance()</p> <p>{</p> <p>return s;</p> <p>}</p> <p>}</p> <p>下面的代码就是用的懒汉式的操作</p> <p>*/</p> <h2>//懒汉式</h2> <p>class Single</p> <p>{</p> <p>private static Single s = null;</p> <p>private Single(){}</p> <p>public static Single getInstance()</p> <p>{</p> <p>if (s==null)</p> <p>{</p> <p>synchronized(Single.class)</p> <p>{</p> <p>if (s==null)</p> <p>{</p> <p>s=new Single();</p> <p>}</p> <p>}</p> <p>}</p> <p>return s;</p> <p>}</p> <p>}</p> <p>class  SingleDemo</p> <p>{</p> <p>public static void main(String[] args) </p> <p>{</p> <p>System.out.println("Hello World!");</p> <p>}</p> <p>}</p> <p>懒汉式的特点是在于延迟加载,那么如果出现多线程进行访问的时候就会出现安全问题。解决的方式就是使用同步,但是同步的效率想提高的话,就需要进行双重的判定,锁住的对象就是该类所属的字节码对象class,上述的代码中就是对于其进行的正确的修改!</p>