本帖最后由 王艳静 于 2015-8-18 12:00 编辑
问:懒汉式和饿汉式有什么不同?
答:懒汉式的特点在于,示例延迟加载
问:示例延迟加载有没有问题?
答:多线程加载会出现安全问题
问:怎么解决?
答:加同步,用同步函数和同步代码块都能解决。而同步函数比较低效,每次都要判断锁。用同步代码块,双重判断,即在判断同步之前,判断对象是否为空。
问:同步时,使用的哪一个锁
答:静态的同步方法,使用的锁是该方法所在类的字节码文件对象。Single.class
代码:
- class Single{
- private static Single s = null;
- private Single(){}
- public static Single getIntance(){
- if(s==null){
- //静态的同步方法,使用的锁是该方法所在类的字节码文件对象。类名.class
- synchronized(Single.class){
- if(s==null)
- s = new Single();
- }
- }
- return s;
- }
- }
复制代码
|
|