JAVA单例模式

本文介绍了三种不同的单例模式实现:简单单例模式、懒汉式单例模式及双锁机制单例模式。简单单例模式易于理解但无法解决多线程问题;懒汉式解决了多线程问题但性能欠佳;双锁机制则既解决了多线程问题又提高了并发性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[align=left][/align]简单单例模式:

public class danli(){ 
    private danli(){ 
    } 
    
    private static Test t = new Test(); 
    
    public static  Test getT(){ 
      return t; 
    } 
} 

 
这种方法创建的单例缺点就是不能解决多线程问题!

懒汉式:

public class danli(){ 
    private danli(){ 
    } 
    private static Test t =null; 
    
    public static synchronized Test getT(){ 
       if(t == null){ 
         t = new Test(); 
       } 
       return t; 
    } 
} 

 

这种方法解决咯上面多线程的问题!但是还存在一个性能的问题!当多个线程同时访问时候,进入方法的线程独占资源,后面的线程将一直等待;

双锁机制:

public class danli(){ 
    private danli(){ 
    } 
    private static Test t =null; 
    
    public static Test getT(){ 
      if(t == null){ 
         synchronized(Test.class){ 
           t = new Test();       
         } 
      } 
       return t; 
     } 
} 

 
这种方法很好的解决咯上面的问题性能提高,支持高并发量;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值