思考锁是如何存储的
可以思考一下,要實現多線程的互斥特性,那這把鎖需要哪些因素??
1. 鎖需要有一個東西來表示,比如獲得鎖是什么狀態、無鎖狀態是什么狀態
2. 這個狀態需要對多個線程共享
那么我們來分析,synchronized鎖是如何存儲的呢?觀察synchronized的整個語法發現,synchronized(lock)是基于lock這個對象的生命周期來控制鎖粒度的,那是不是鎖的存儲和這個lock對象有關系呢?
于是我們以對象在jvm內存中是如何存儲作為切入點,去看看對象里面有什么特性能夠實現鎖
?
總結
- 上一篇: synchronized的应用
- 下一篇: 对象在内存中的布局