此博客是本人从学生时代开始做笔记所用, 部分是工作所遇问题,做填坑笔记,部分闲来查阅资料,加上自己的理解所总结的学习笔记, 常忙得不可开交,若漏了资料来源,望通知~ 前路漫漫,写点东西告诉自己正在一点点进步,而不要迷失于繁忙。

类锁、对象锁、互斥锁与synchronized

本文总结自: https://blog.csdn.net/luckey_zh/article/details/53815694

互斥锁: 若对象有互斥锁,则在任一时刻,只能有一个线程访问对象。类锁、对象锁都属于对象监视器,而对象监视器是基于互斥锁的

对象监视器,详见: https://www.cnblogs.com/yanze/p/9774388.html

类锁、对象锁层次: java层次

类锁即锁住了类,对象锁即锁住实例对象

 

synchronized使用场景分以下几种:

1. 一般方法

对象锁,锁住当前对象

 

2. 静态方法

类锁,锁住此类

 

3. synchronized(object)

 

锁住object,object可为对象,可为类

常见: 

synchronized(this)

对象锁

 

synchronized(*.class)

类锁

 

锁的本质:

逻辑上来说,锁其实是对象内存堆中头部的一部分数据。当线程获得一个锁,即是在锁内存区域设置一些标志。线程释放锁也是改变这些标记。

 

posted @ 2018-10-10 18:45  炎泽  阅读(1206)  评论(0编辑  收藏  举报