分享一个volatile实现的双检锁单例模式
2016-06-17 00:09
281 查看
/** * DCL(DubleCheckedLock)单例模式 */ public class Singleton { private volatile static Singleton instance; public static Singleton getInstance() { if (instance == null) {//锁细化 synchronized (Singleton.class) { if (instance == null) {//多线程环境下还需要再次判空 instance = new Singleton(); } } } return instance; } }
volatile关键字的作用是禁止指令重排序优化。
分享一个介于牛A和牛C之间的单例模式,秒杀其他一切单例模式:
public enum EasySingleton { INSTANCE; }
通过EasySingleton.INSTANCE访问,线程安全而且还能防止反序列化导致重新创建新的对象。
不禁感叹,Java原来也可以如此优美!
相关文章推荐
- 登录页用户账号加密方式及实现
- JVM性能调优
- java基础二(阅读Head First Java记录)
- php中的parse_str
- MY_GEEK_MY2048
- 初识Xcode8
- 一个IT工薪族的4年奋斗成果
- 一个IT工薪族的4年奋斗成果
- Python 改变字体颜色
- 一个IT工薪族的4年奋斗成果
- 仿射密码解密
- 数据结构实验之排序二:交换排序
- 博客第三天-java基础简介
- MYSQL数据库错误代码提示汇总
- 在线免费UML、四维导图绘制工具
- Solr环境搭建
- Android面试题]--BAT三年面试集锦之Android面试之二(你一定会遇到)
- JVM的内存机制
- 简易IP子网划分计算方法
- 数据分析师成长和进阶免费教程