lock 单例模式

  1. 单例模式只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等等
  2.    网站的计数器,一般也是采用单例模式实现,否则难以同步
  3.   单例模式要素: 
            a.私有构造方法 
            b.私有静态引用指向自己实例 
            c.以自己实例为返回值的公有静态方法
  4. 单例模式在多线程的 应用场合下必须小心使用
  5. 多线程可能调用同一个方法,可能没有创建实例导致多个实例被构造,违反单例模式原则
  6. public class MySingleton {  
  7.     volatile private static MySingleton instance = null;  
  8.       
  9.     private MySingleton(){}  
  10.        
  11.     public static MySingleton getInstance() {  
  12.         try {    
  13.             if(instance != null){//懒汉式   
  14.                   
  15.             }else{  
  16.                 //创建实例之前可能会有一些准备性的耗时工作   
  17.                 Thread.sleep(300);  
  18.                 synchronized (MySingleton.class) {  
  19.                     if(instance == null){//二次检查  
  20.                         instance = new MySingleton();  
  21.                     }  
  22.                 }  
  23.             }   
  24.         } catch (InterruptedException e) {   
  25.             e.printStackTrace();  
  26.         }  
  27.         return instance;  
  28.     }  

转载于:https://www.cnblogs.com/Mypark/p/7656160.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值