类锁和对象锁,synchronized修饰static方法与非static方法的区别

时间:2021-11-22 11:30:42

当synchronized修饰一个static方法时,多线程下,获取的是类锁(即Class本身,注意:不是实例),

作用范围是整个静态方法,作用的对象是这个类的所有对象。

当synchronized修饰一个非static方法时,多线程下,获取的是对象锁(即类的实例对象),

作用范围是整个方法,作用对象          是调用该方法的对象

结论: 类锁和对象锁不同,它们之间不会产生互斥