在重温单例模式时候,发现一个比较好玩的东西,死锁。
首先,有两个单例bean,相互需要。
public class Sigton1 {
private Sigton2 sigton2;
private static Sigton1 sigton1 = null;
private Sigton1(Sigton2 sigton2) {
this.sigton2 = sigton2;
}
public static Sigton1 getInstance(){
if (null == sigton1) {
synchronized (Sigton1.class) {
Sigton2 instance = Sigton2.getInstance();
sigton1 = new Sigton1(instance);
}
}
return sigton1;
}
}
public class Sigton2 {
private Sigton1 sigton1;
private static Sigton2 sigton2;
private Sigton2(Sigton1 sigton1) {
this.sigton1 = sigton1;
}
public static Sigton2 getInstance(){
if (null == sigton2) {
synchronized (Sigton2.class) {
Sigton1 instance = Sigton1.getInstance();
sigton2 = new Sigton2