类锁、对象锁、互斥锁与synchronized
2024-09-02 21:00:54
本文总结自: 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)
类锁
锁的本质:
逻辑上来说,锁其实是对象内存堆中头部的一部分数据。当线程获得一个锁,即是在锁内存区域设置一些标志。线程释放锁也是改变这些标记。
最新文章
- First commit
- JPA mysql wildfly jboss 存储时乱码
- 针对跑MySQL的Linux优化【转】
- Nexus4_文件名乱码
- 纯干货,Spring-data-jpa详解,全方位介绍
- 基于.NET平台的分层架构实战(六)——依赖注入机制及IoC的设计与实现[转]
- js之form表单的获取
- autoit 处理文件上传弹出框,并在JAVA中调用
- ajax学习之post请求步骤
- Java多线程Future模式
- Android调试错误-No resource identifier found for attribute 'showAsAction'
- Chrome Stylist 插件 (CSS备份)
- Linux 学习笔记_12_文件共享服务_4_SSH
- Load balancer does not have available server for client
- input输入框只能输入正整数、字母、小数、汉字
- SQL Server 数据导入Mysql具体教程
- JVM体系结构概述
- c#中打开Excel文档
- nodeJs--模块module.exports与实例化方法
- 排序算法--冒泡排序(Bubble Sort)_C#程序实现