2019.1.18
本文主要是阅读:
https://mp.weixin.qq.com/s/dDAAH-Vkxi8xoj6uT0XRtg
Java设计模式之《单例模式》及应用场景 - 唯一浩哥 - 博客园
之后的总结。
1.主要应用场景
单例含义:有且仅有创建了一个对象,例如‘神’只有一个。应用场景:如windows中的任务管理器,回收站,项目中的数据库连接池,Spring中创建的实例默认都为单例。
2.实现方式
2.1“痴汉模式”
2.1 “懒汉模式”
对创建实例方法进行加锁
双重加锁机制
补充:关于锁内部的第二重空判断的作用,当多个线程一起到达锁位置时,进行锁竞争,其中一个线程获取锁,如果是第一次进入则god为null,会进行单例对象的创建,完成后释放锁,其他线程获取锁后就会被空判断拦截,直接返回已创建的单例对象。
网友评论