假如有A,B两个线程,此刻A线程占用锁,当出现异常后会自动释放锁,B线程会继续获得锁运行下去直到释放锁
1.实例方法同步
public synchronized void m(){}
2.静态方法同步
public static synchronized void m(){}
3.实例方法中的同步代码块
public void m(){
synchronized(this){
.............
}
}
4.静态方法中的同步代码块
class T{
public static void m(){
synchronized(T.class){
......
}
}
}