这节考点好多啊。分享一下给大家。希望加深一下理解。
下面是代码:class Single
{
private static Single s = null;
private Single(){}
public static Single getSingle()
{
//如果第一个线程获取到了单例的实例对象
//那么后面的线程获取实例就不需要进入同步代码块了。
if (s=null)
{
synchronized(Single.class)
{
if (s=null)
s = new Single;
return s;
}
}
}
}
懒汉式用于实例的延时加载。
如果多线程访问出现安全问题:通过加同步来解决。同步代码块和同步函数都以
用双重判断方式可以解决效率问题。
加同步时使用的锁是 该类所属的字节码对象。
大家多多了解下哈。 |
|