/**
* 线程安全的单例模式实现,
* 实现了不同线程之间对象不同,同一线程之中对象一致!
*/
class Kun {
private static ThreadLocal<Kun> kunThreadLocal=null;
private Kun(){}
public static Kun getKunInstance(){
if (kunThreadLocal==null) {
//说明是第一次获取对象
kunThreadLocal = new ThreadLocal<>();
}
if (kunThreadLocal.get()==null) {
kunThreadLocal.set(new Kun());
}
return kunThreadLocal.get();
}
}
/**
* 实现了所有情况下都只能获取到单一对象的情况
*/
public class Kun{
//私有构造
private Kun(){}
//创建私有静态内部类创建本类对象
private static class KunInstance{
private static final Kun instance = new Kun();
}
public Kun getInstance(){
return KunInstance.instance;
}
}
线程安全的单例模式实现
猜你喜欢
转载自blog.csdn.net/weixin_40427212/article/details/84610893
今日推荐
周排行