马士兵高并发编程系列记录
https://www.bilibili.com/video/av11076511/?spm_id_from=333.788.videocard.4
线程安全的单例模式:
阅读文章:http://www.cnblogs.com/xudong-bupt/p/3433643.html
更好的是采用下面的方式,既不用加锁,也能实现懒加载
使用内部类的单例模式
不用加锁,也可以实现懒加载(需要的时候才加载)
import java.util.Arrays;
public class Singleton {
private Singleton() {
System.out.println("single");
}
private static class Inner {
private static Singleton s = new Singleton();
}
public static Singleton getSingle() {
return Inner.s;
}
// 懒加载 执行getSingle方法时才返回Inner.s,这时Inner.s里 Singleton s才创建
public static void main(String[] args) {
Thread[] ths = new Thread[200];
for(int i=0; i<ths.length; i++) {
ths[i] = new Thread(()->{
System.out.println(Singleton.getSingle());
});
}
Arrays.asList(ths).forEach(o->o.start());
}
}