多线程的饿汉式和懒汉式
导语:多线程的单例设计模式保证某个类中内存中只有一个对象,分为饿汉式和懒汉式,让我们了解一下吧!
(1)饿汉式:
class Single
{
private Single(){}/pic/p>
private static final Single s=new Single();/pic/p>
public static Single getInstance()/pic/p>
{
return s;
}
}
(2)懒汉式:
class Single
{
private Single(){}
private static Single s;
public static Single getInstance()
{
if(s==null)
s=new Single();
return s;
}
}
饿汉式和懒汉式的区别:
**
饿汉式是类一加载进内存就创建好了对象;
懒汉式则是类加载进内存的时候,对象还没有存在,只有调用了getInstance()方法时,对象才开始创建。
**
懒汉式是延迟加载,如果多个线程同时操作懒汉式时就有可能出现线程安全问题,解决线程安全问题
可以加同步来解决。但是加了同步之后,每一次都要比较锁,效率就变慢了,
所以可以加双重判断来提高程序效率。
如将上述懒汉式的Instance函数改成同步:
public static Single getInstance()
{
if(s==null)
{
synchronized(Single.class)
{
if(s==null)
s=new Single();
}
}
return s;
}
【多线程的饿汉式和懒汉式】相关文章:
java多线程的同步和异步02-02
Java多线程的定义状态和属性12-25
参与式教学总结11-14
什么是响应式布局02-02
响应式网页设计12-01
《除法竖式》教案11-28
《多项式除以单项式》最新教学设计11-27
初中数学教案《多项式与多项式相乘》12-21