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

Posted alter888

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类锁和对象锁,synchronized修饰static方法与非static方法的区别相关的知识,希望对你有一定的参考价值。

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

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

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

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

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



以上是关于类锁和对象锁,synchronized修饰static方法与非static方法的区别的主要内容,如果未能解决你的问题,请参考以下文章

synchronized关键字以及对象锁和类锁的区别

java 类锁与对象锁(实例锁)同步问题

synchronized的对象锁和类锁

Java类锁和对象锁实践(good)

java基础---多线程---synchronized实现原理

并发编程大师系列之:Synchronized的类锁和对象锁