对象锁和class锁

Posted myitnews

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象锁和class锁相关的知识,希望对你有一定的参考价值。

  • 对象锁:就是这个锁属于这个类的对象实例,可以通过为类中的非静态方法加synchronized关键字 或者使用 synchronized(this) 代码块,为程序加对象锁。
  • Class锁:就是这个锁属于这个Class类,所以即使是不同的实例对象仍然拥有的是同一个锁,可以通过为类中的静态方法加synchronized关键字 或者使用 synchronized(*.Class) 代码块,为程序加Class锁。

  Class锁和对象锁是属于不同的锁,属于异步执行,存在争抢作用。
  Class锁对当前的*.java文件对应的Class类进行持锁,对这个类的所有实例对象起作用。而对象锁只对自己的实例对象起作用。

以上是关于对象锁和class锁的主要内容,如果未能解决你的问题,请参考以下文章

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

Java同步—线程锁和条件对象

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

synchronized的对象锁和类锁

synchronize——对象锁和类锁

synchronized(偏向锁和轻量级锁)(TODO)