package com.wwd.other;public class A { private static A a = null;

private A(){

}
public static A getInstance(){
synchronized(A.class){//同步1
if(a == null){
a = new A();
}
return a;
}
}

public synchronized A getA1(){//同步2
return a;
}
public A getA2(){
A a2 = null;
synchronized(this){//同步3
a2 = new A();
}
return a2;
}

}
请问大家,以上类中三个同步处有什么异同?有什么优缺点?分别在什么时候使用啊(可以举例说明)?先谢过了!!!
小弟没多少积分,就不给了,望参加的各位见谅!!^_^