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

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

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

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

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

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

posted @ 2018-10-23 23:19  南望孤笑  阅读(370)  评论(0编辑  收藏  举报