首页 > 编程语言 > 详细

单例模式-线程不安全懒汉式

时间:2020-10-31 08:38:04      阅读:27      评论:0      收藏:0      [点我收藏+]
 1 /**
 2  * 单例模式-线程不安全懒汉式
 3  */
 4 public class SingletonTest03 {
 5     public static void main(String[] args) {
 6         Singleton instanceOne = Singleton.getInstance();
 7         Singleton instanceTwo = Singleton.getInstance();
 8         // out: true
 9         System.out.println(instanceOne == instanceTwo);
10     }
11 }
12 
13 //线程不安全懒汉式
14 class Singleton {
15 
16     /**
17      * 1.构造器初始化,外部不能new
18      */
19     private Singleton() {
20 
21     }
22 
23     /**
24      * 2.本类内部私有化变量。
25      */
26     private static Singleton instance;
27 
28     /**
29      * 3.提供一个公有的静态方法,返回实例对象。
30      *       当使用该方法时,才去创建instance
31      *       即懒汉式
32      */
33     public static Singleton getInstance() {
34         if(instance == null) {
35             instance = new Singleton();
36         }
37         return instance;
38     }
39 
40 }

懒汉式(线程不安全)

优缺点说明:

1) 起到Lazy Loading的效果,但是只能在单线程下使用。

2) 如果在多线程下,一个线程进入了if(instance == null)判断语句块,还未来得及往下执行,另一个线程也通过了这个判断语句,这是便会产生多个实例。所以在多线程环境下不可使用这种方式。

3)结论:在实际开发中,不要使用这种方式。

单例模式-线程不安全懒汉式

原文:https://www.cnblogs.com/tree624/p/13904807.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!