美文网首页
java中线程安全双重检查单例解析

java中线程安全双重检查单例解析

作者: 晏雪峤_美杜莎 | 来源:发表于2020-11-21 20:23 被阅读0次

实现:
public final class MySingleton {

// 防止指令重排序. (顺序性,可见性), 保证了socket 变量先初始化,instance后赋值。
private volatile static MySingleton instance = null;

private Socket socket;

private MySingleton() {
    this.socket = new Socket();
}

public static MySingleton getInstance() {
    if (null == instance) {
        // 2个线程同时访问时, 只有一个线程可以获取到锁。
        synchronized (MySingleton.class) {
            // 如果不添加判断, 那么第二个线程又重新实例化了一遍,浪费了。
            if (null == instance) {
                // 注意volatile顺序性。
                instance = new MySingleton();
            }
        }
    }
    return instance;
}

}

相关文章

  • java中线程安全双重检查单例解析

    实现:public final class MySingleton { }

  • 单例模式为什么要用Volatile关键字

    线程安全的单例模式常见写法是双重检查加锁。代码如下: 双重检查加锁的单例模式代码上就比较复杂,尤其体现在getIn...

  • Java设计模式一--单例模式

    一、单例模式单例模式主要分为饿汉式、懒汉式(非线程安全、线程安全、双重检查)、静态内部类、枚举。1.饿汉式 2.懒...

  • 单例模式-Spring

    参考来源 饿汉式 懒汉式 利用双重检查机制创建线程安全的单例对象 内部类实现单例 Spring对单例的实现 引出两...

  • Picasso源码详解

    一、Picasso源码解析 (1)get():一个单例模式,为了保证线程安全,使用的是双重校验锁。创建的过程中又使...

  • 单例模式之双重检查的演变

    前言 单例模式本身是很简单的,但是考虑到线程安全问题,简单的问题就变复杂了。这里讲解单例模式的双重检查。 单例模式...

  • 单例模式

    安卓常用的设计模式 单例模式的6种写法: 饿汉模式,懒汉模式(线程不安全),懒汉模式(线程安全),双重检查模式(D...

  • 单例模式——线程安全的两种实现

    单例模式——线程安全的两种实现 一、双重检查锁定(double-checked locking) 推荐使用懒汉式写...

  • Java 常用单例

    一、线程不安全的单例模式 二、线程安全且高效的单例模式 1.双重校验锁 2.静态内部类

  • 【问答】设计

    线程安全的单例模式 饿汉模式、方法synchronized的懒汉模式、双重检查锁的懒汉模式、静态内部类模式; 适配...

网友评论

      本文标题:java中线程安全双重检查单例解析

      本文链接:https://www.haomeiwen.com/subject/lcgeiktx.html