枚举方式,不仅可以解决线程同步,还可以防止序列化。
package com.hax.singleton;
public enum Singleton3 {
INSTANCE;
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
new Thread(() -> {
Singleton3 instance = Singleton3.INSTANCE;
System.out.println(instance.hashCode());
}).start();
}
}
}
更多文章已经被GitHub收录以及电子书等资料:https://github.com/niutongg/JavaLeague
部分截图如下: