枷锁的目的:序列化访问锁类型:
ReenttrantLOck <实现 juc的LOCK ,实现是基于AQS实现,需要
手动加锁的,锁的力度是对象,
几乎是不开发锁的方法,syn 几乎不可以跨方法,夸对象,夸方法,的枷锁和解锁。
Java 锁体系的方法:
这个角度来区分的话,
枷锁的方法施加在的锁的方法,枷锁加载类对象上,
不加锁,加载类对象上,
类的托管给线程控制,Bean的作用域必须要的默认是单列,手动的插入内存屏障的,同样能的方法:
UnsafeInstance.releactioGetUnsafe.montotExit(Object);
枷锁方式:
枷锁方式:
同步实例的方法,锁是当前实例的对象
同类的类方法,每个同步对象都一个一个Monitor (监视器锁的过程)。
如果竞争
对象头 生存的年龄,比如之类的OOP,哪一个class 对象,其实就是一个指针,指向这个calss 对象,这个对象头,
对其填充物:对象的大小必须是8字节的整数倍。
所以必须是强制性的要求。
实例对象,枷锁加载类对象,其内存结构。
问题: 1.实例对象一般存储在哪里呢?
应该是堆中,实例对象数据存在堆区,实例的引用在账上。
实例的元数据存在这方法区部分,实例的元数据calss 存在方法去,实例的元数据class 存在方法区或者元空间
问题2:实例对象一定是在堆区吗?
不一定,