多线程单例 可以概括为两中模式(饿汉模式和懒汉模式)
Posted 2226016500
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程单例 可以概括为两中模式(饿汉模式和懒汉模式)相关的知识,希望对你有一定的参考价值。
如何保证多线程下的单例。
1多线程安全单例模式一(不使用同步锁).
1 1 public class Singleton { 2 2 private Singleton() 3 3 {} 4 4 private static Singleton singleton; 5 5 6 6 public static Singleton getInstance() 7 7 { 8 8 if(singleton ==null) 9 9 { 10 10 singleton =new Singleton(); 11 11 } 12 12 return singleton; 13 13 } 14 14 15 15 16 16 }View Code
2.多线程安全单例模式一(使用同步锁).
public class Singleton { private Singleton() {} private static Singleton singleton; //sychronized 同步 public static synchronized Singleton getInstance() { if(singleton ==null) { singleton =new Singleton(); } return singleton; } }
3.多线程安全单例模式一(使用双重同步锁).
public class Singleton { private static Singleton instance; private Singleton (){ } public static Singleton getInstance(){ //对获取实例的方法进行同步 if (instance == null){ synchronized(Singleton.class){ if (instance == null) instance = new Singleton(); } } return instance; } }
以上是关于多线程单例 可以概括为两中模式(饿汉模式和懒汉模式)的主要内容,如果未能解决你的问题,请参考以下文章
多线程 实现单例模式 ( 饿汉懒汉 ) 实现线程安全的单例模式 (双重效验锁)