Synchronized性质
2024-09-03 02:40:21
* 什么是可重入:指的是同一线程的外层函数获得锁之后,内层函数可以直接再次获取该锁,而不是释放当前的锁去重新获取一个锁,这是它的一个优点
* 好处:避免死锁,提升封装性
* 粒度:是线程范围而非调用范围
情况一:同一个方法是可以重入的
情况二:不同方法是可以重入的
情况三:不同类是可以重入的
一旦这个锁已经被别人获得了,如果我还想获得,我只能等待或者阻塞,直到别人释放这个锁,如果别人永远不释放锁,那么我只能永远等待下去,这是一个缺点
相比之下Lock类拥有中断的能力,如果我等的时间太长了,有权中断正在执行的线程,如果不想等了,可以退出。
不够灵活
加锁和释放锁单一,每个锁仅有单一的条件(某个对象),可能是不够的
无法知道是否成功获取到锁
最新文章
- 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
- 深入理解Java虚拟机(三)、垃圾收集算法
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- sqlserver常用日期、时间函数和格式
- Combination Sum [LeetCode]
- golang处理错误的艺术
- 《postfix MAIL服务搭建(第一篇):》RHEL6
- JSON 基本语法
- 成都UBER优步司机第六组奖励政策
- 全国计算机等级考试二级教程-C语言程序设计_第8章_地址和指针
- urllib2使用2
- Httprequest 获取url 常用方法
- WebRTC Precompiled 使用
- RSP小组——团队冲刺博客一——(领航)
- Linux filesystem
- node-sass模块的安装
- 业务开发(六)—— MyBatis框架
- unity 打包编译记录
- Java面试中遇到的坑【填坑篇】
- mysql xtrabackup工具备份
热门文章
- eclipse中正确创建Django项目
- [转帖]IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”)
- RabbitMQ 的消息持久化与 Spring AMQP 的实现剖析
- Mybatis源码解析(二) —— 加载 Configuration
- hello world之vivado程序解决方法
- 如何显示IntelliJ IDEA工具的Run Dashboard功能(转)
- Vue学习之品牌案例部分代码小结(二)
- CSS3 新增文本样式
- Springboot自动化部署到docker以及logback按天生成日志
- mac下比较好用的svn软件,SVN客户端CornerStone 2.7.10 破解版