同步中的单例设计模式 饿汉式。 /* classSingle { pricate static final Single s = new Single(); private Single(){} public static Single getInstance() { return s; } } */ /*懒汉式:(实例的延时加载)因为每个对象进入都要判断Single.class这个锁,这就降低了程序运行效率, 所以用双重判断来解决这个问题。 特点:懒汉式的特点是延时加载,当多线程访问时,会出现安全问题,解决的方法是加同步,而加同步用同步代码块和同步函数都行, 但是稍微有些低效,用双重判断的形式能解决这个问题。加同步使用的锁是该类所属的字节码文件对象 */ classSingle { private static Single s = null; private Single(){} public static Single getInstance() { if(s==null) //一层判断 { synchronized(Single.class)//Single.class 是加同步使用的锁 { if(s==null)//另一层判断 s = new Single(); } } return s; } } classSingleDemo { public static void main(String[] args) { System.out.println("HelloWorld"); } } |