java 单例 同步_JAVA技巧:加同步锁的单例模式代码

00837299fca5f17d14d316abbff0f0ff.png

/*

*单例模式

*单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点。

*加同步锁的单例模式,适合在多线程中使用。

*/

class Singleton{

private static Singleton instance;

private Singleton(){}//构造函数为private,外类不能使用new来创建立此类的实例

public static Singleton getInstance(){//获得实例的全局访问点

System.out.println("进入外层");

if (instance==null){

synchronized(Singleton.class){

if(instance==null){

instance=new Singleton();

System.out.println("进入里层");

}//end inner if

}//end synchronized

}//end outter if

return instance;

}//end getInstance()

}

class Instance extends Thread{

static int count=1;

public void run(){

System.out.println("第"+ count++ +"次调用同一个实例!");

Singleton s1=Singleton.getInstance();

}//end run

public static void main(String []args){

for( int i=1;i<5;i++){

Instance thread1=new Instance();

thread1.start();

}

}//end main

}

运行结果:

第1次调用同一个实例!

进入外层

进入里层

第2次调用同一个实例!

进入外层

第3次调用同一个实例!

进入外层

第4次调用同一个实例!

进入外层

2829f2ca24f0d0090cbba57f30759f23.png

JAVA技巧:加同步锁的单例模式代码.doc

下载Word文档到电脑,方便收藏和打印[全文共658字]

编辑推荐:

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

下载Word文档

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值