sysnchronized 加在方法上的区别
- public synchronized void a(){ }
这种锁的是 this 对象 - public synchronized static void b(){}
这种锁的是 class 对象
public class Test1 {public static void main(String[] args) {Test11 test11 = new Test11();/**这两个用的不是同一个锁。**/new Thread(()->{test11.a(); });new Thread(()->{Test11.b();});}}class Test11 {// synchronized(this)public synchronized void a(){}// 这个为 syschronized(Test11.class)public synchronized static void b(){}
}