黑马程序员技术交流社区

标题: 多线程下的懒汉模式两种方法 [打印本页]

作者: 暗影流光    时间: 2014-7-10 12:03
标题: 多线程下的懒汉模式两种方法
  1. class Single {
  2.         private Single() {
  3.         };

  4.         static Object obj = new Object();
  5.         private static Single s = null;

  6.         /**
  7.          * 用同步代码块,不需要每次都判断锁,效率高
  8.          */
  9.         public static Single getSingle1() {
  10.                 if (s == null) {
  11.                         synchronized (obj) {
  12.                                 if (s == null) {
  13.                                         s = new Single();
  14.                                 }
  15.                         }
  16.                 }
  17.                 return s;
  18.         }

  19.         /**
  20.          * 用同步方法,每次都需要判断锁,效率低
  21.          */
  22.         public static synchronized Single getSingle2() {
  23.                 if (s == null) {
  24.                         s = new Single();
  25.                 }
  26.                 return s;
  27.         }
  28. }
复制代码



作者: 晴儿    时间: 2014-7-10 12:43
共同学习、共同进步。
作者: yangcy    时间: 2014-7-10 12:43
给你顶一个。
作者: a6511631    时间: 2014-7-10 12:50
你试试把synchronized换成lock来实现下
作者: 崔MQ    时间: 2014-7-10 12:55
不错,共同小学了
作者: hxwo211314    时间: 2014-7-10 13:53
不错  ,学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2