简介
提到多线程肯定会牵扯到锁的概念,其中对象锁和类锁提的最多,但是一直以来我都没有注意到类锁,今天就主要针对类锁做一个简单的介绍。
对象锁和类锁的区别
一个类在使用之前一般需要new一个对象,然后使用,但是这个不是必须的,也有一种通过static定义的属性或者方法可以用类名直接调用,这两者的具体区别去看相关的Java基础,如果你对这个不清楚,建议暂时放弃学习多线程,先巩固基础再去学习高级的东西,否则学起来很比较累而且效率也低。
所谓的对象锁就是以new出来的对象作为锁,而类锁就是以类加载之后形成的Class作为锁,虽然类锁相对于对象锁更加底层,但是这两者是单独存在,锁之间不受影响。
类锁与对象锁作用范围不同,类锁作用于所有对象,所有调用对象资源的线程竞争同一个类锁;对象锁作用于当前对象,多个线程只需要在当前对象中竞争需要的资源。
具体的代码演示就不做了,网上相关博客很多。