Synchronized可重入性质

* 什么是可重入:指的是同一线程的外层函数获得锁之后,内层函数可以直接再次获取该锁,而不是释放当前的锁去重新获取一个锁,这是它的一个优点

* 好处:避免死锁,提升封装性

* 粒度:是线程范围而非调用范围

  情况一:同一个方法是可以重入的

    情况二:不同方法是可以重入的

    情况三:不同类是可以重入的

  

Synchronized不可中断

一旦这个锁已经被别人获得了,如果我还想获得,我只能等待或者阻塞,直到别人释放这个锁,如果别人永远不释放锁,那么我只能永远等待下去,这是一个缺点

相比之下Lock类拥有中断的能力,如果我等的时间太长了,有权中断正在执行的线程,如果不想等了,可以退出。

不够灵活

加锁和释放锁单一,每个锁仅有单一的条件(某个对象),可能是不够的

无法知道是否成功获取到锁

最新文章

  1. 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
  2. 深入理解Java虚拟机(三)、垃圾收集算法
  3. php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
  4. sqlserver常用日期、时间函数和格式
  5. Combination Sum [LeetCode]
  6. golang处理错误的艺术
  7. 《postfix MAIL服务搭建(第一篇):》RHEL6
  8. JSON 基本语法
  9. 成都UBER优步司机第六组奖励政策
  10. 全国计算机等级考试二级教程-C语言程序设计_第8章_地址和指针
  11. urllib2使用2
  12. Httprequest 获取url 常用方法
  13. WebRTC Precompiled 使用
  14. RSP小组——团队冲刺博客一——(领航)
  15. Linux filesystem
  16. node-sass模块的安装
  17. 业务开发(六)—— MyBatis框架
  18. unity 打包编译记录
  19. Java面试中遇到的坑【填坑篇】
  20. mysql xtrabackup工具备份

热门文章

  1. eclipse中正确创建Django项目
  2. [转帖]IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”)
  3. RabbitMQ 的消息持久化与 Spring AMQP 的实现剖析
  4. Mybatis源码解析(二) —— 加载 Configuration
  5. hello world之vivado程序解决方法
  6. 如何显示IntelliJ IDEA工具的Run Dashboard功能(转)
  7. Vue学习之品牌案例部分代码小结(二)
  8. CSS3 新增文本样式
  9. Springboot自动化部署到docker以及logback按天生成日志
  10. mac下比较好用的svn软件,SVN客户端CornerStone 2.7.10 破解版