java双重锁单例模式怎么实现

   2025-02-13 6360
核心提示:双重锁单例模式是一种在多线程环境下保证只有一个实例被创建的方法。下面是一个使用双重锁单例模式的Java代码示例:public class

双重锁单例模式是一种在多线程环境下保证只有一个实例被创建的方法。下面是一个使用双重锁单例模式的Java代码示例:

public class Singleton {    private volatile static Singleton instance;    private Singleton() {}    public static Singleton getInstance() {        if (instance == null) {            synchronized (Singleton.class) {                if (instance == null) {                    instance = new Singleton();                }            }        }        return instance;    }}

在上面的代码中,getInstance() 方法首先检查实例是否已经创建,如果没有创建,才会进入同步块。在进入同步块之后,再次检查实例是否已经创建,这是为了避免多个线程同时进入同步块时,创建多个实例的问题。使用 volatile 关键字可以确保在多线程环境下,instance 变量的可见性和有序性,从而避免了由于指令重排导致的问题。

双重锁单例模式可以在多线程环境下保证只有一个实例被创建,并且在实例被使用之前不会进行实例化,从而提高了性能。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言