类锁和对象锁,synchronized修饰static方法与非static方法的区别
Posted alter888
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类锁和对象锁,synchronized修饰static方法与非static方法的区别相关的知识,希望对你有一定的参考价值。
当synchronized修饰一个static方法时,多线程下,获取的是类锁(即Class本身,注意:不是实例),
作用范围是整个静态方法,作用的对象是这个类的所有对象。
当synchronized修饰一个非static方法时,多线程下,获取的是对象锁(即类的实例对象),
作用范围是整个方法,作用对象 是调用该方法的对象
结论: 类锁和对象锁不同,它们之间不会产生互斥
以上是关于类锁和对象锁,synchronized修饰static方法与非static方法的区别的主要内容,如果未能解决你的问题,请参考以下文章