码迷,mamicode.com
首页 > 编程语言 > 详细

Java单例模式《二》懒汉式

时间:2017-09-10 17:41:44      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:ebean   package   3.2   java单例模式   blog   mod   线程   不用   zed   

 1 package com.study.mode;
 2 /**
 3  * 单例模式:  懒汉式,需要的时候创建。
 4  * @ClassName: SingleBean2 
 5  * @author BlueLake
 6  * @date 2012年9月5日 下午9:08:21
 7  */
 8 public class SingleBean2 {
 9 
10     //1.私有化构造方法。
11     private SingleBean2(){
12         
13     }
14     //2.创建一个当前类的静态属性
15     private static SingleBean2 single = null;
16 
17     //3.1 在需要的时候,创建对象。
18     public static SingleBean2 getSingleA(){
19         if(single==null){
20             single = new SingleBean2();
21         }
22         return single;
23     }
24 
25     //3.2    由于3.1的方法线程不安全,多线程时会有多个SingleBean2实例。所以加锁
26     public synchronized static SingleBean2 getSingleB(){
27         if(single==null){
28             single = new SingleBean2();
29         }
30         return single;
31     }
32 
33     //3.3 ,由于每次调用3.2这个方法都要加锁,如果有的话直接返回就可以了,所以浪费内存
34     public static SingleBean2 getSingleC(){
35         //如果存在,直接返回,这里不用锁
36         if(single== null){
37             //如果,不存在,加锁,创建
38             synchronized(SingleBean2.class){
39                 //强壮性考虑,创建前,判断
40                 if(single==null){
41                     single = new SingleBean2();
42                 }
43             }
44         }
45         return single;
46     }
47 }

 

Java单例模式《二》懒汉式

标签:ebean   package   3.2   java单例模式   blog   mod   线程   不用   zed   

原文地址:http://www.cnblogs.com/tashaxing/p/7501417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!