码迷,mamicode.com
首页 > 其他好文 > 详细

单例的正确姿势

时间:2017-06-02 17:43:08      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:静态   volatile   外部类   变量   多线程   没有   优点   线程安全   单例对象   

1.加锁延迟性的懒汉单例模式

  单例对象需要用volatile去修饰,可以保证对象是公用的;

  初始化单例对象的方法,需要在方法内部判空后进行加锁再次判断空 new 对象的方式。

 

  优点:

    确保单例使用时,不会出现未初始化成功的情况(多线程频发并发去拿单例对象可能会造成对象没有初始化成功但不为null的情况)

  缺点:

    这是线程不安全的初始化单例对象的方法,因为不安全所以需要给变量加上共享标识,并且在初始化时加锁再次判定

2.静态内部类初始化外部类对象的单例模式

  通过静态内部类的静态方法,去new外部类的单例对象,可以真正意义上保证外部类单例对象正确存在,这也是线程安全的单例方法

单例的正确姿势

标签:静态   volatile   外部类   变量   多线程   没有   优点   线程安全   单例对象   

原文地址:http://www.cnblogs.com/fengchuxiaodai/p/6933745.html

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