并发控制(3) 使用double check方式的单例,来确保并发下的线程安全的单例模式

来源:互联网 发布:苹果6电话录音软件 编辑:程序博客网 时间:2024/06/08 18:01

这是实现并发下懒汉模式,是线程安全的,叫做double check,另外一种是内部静态类,它们都可以实现多线程下的安全单例



package com.bjsxt.base.conn011;public class DubbleSingleton {private static DubbleSingleton ds;public  static DubbleSingleton getDs(){if(ds == null){try {//模拟初始化对象的准备时间...Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}synchronized (DubbleSingleton.class) {if(ds == null){ds = new DubbleSingleton();}}}return ds;}public static void main(String[] args) {Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {System.out.println(DubbleSingleton.getDs().hashCode());}},"t1");Thread t2 = new Thread(new Runnable() {@Overridepublic void run() {System.out.println(DubbleSingleton.getDs().hashCode());}},"t2");Thread t3 = new Thread(new Runnable() {@Overridepublic void run() {System.out.println(DubbleSingleton.getDs().hashCode());}},"t3");t1.start();t2.start();t3.start();}}


0 0
原创粉丝点击