synchronized和ReentrantLock的区别

synchronized是和if、else、for、while一样的关键字,ReentrantLock是类,这是二者的本质区别。

代写

既然ReentrantLock是类,那么它就提供了比synchronized更多更灵活的特性,可以被继承、可以有方法、可以有各种各样的类变量,ReentrantLock比synchronized的扩展性体现在几点上:

(1)ReentrantLock可以对获取锁的等待时间进行设置,这样就避免了死锁

(2)ReentrantLock可以获取各种锁的信息

(3)ReentrantLock可以灵活地实现多路通知

另外,二者的锁机制其实也是不一样的:ReentrantLock底层调用的是Unsafe的park方法加锁,synchronized操作的应该是对象头中mark word.

最新文章

  1. 闲来无事,写个基于UDP协议的Socket通讯Demo
  2. #Deep Learning回顾#之2006年的Science Paper
  3. PL/SQL如何导入dmp文件
  4. MVC知识进阶01
  5. Linux磁盘管理之元数据、文件和目录、链接文件03
  6. 【POJ 2923】Relocation(状压DP+DP)
  7. .net Windows服务程序和安装程序制作图解 及 VS 2010创建、安装、调试 windows服务(windows service)
  8. bzoj 3594 [Scoi2014]方伯伯的玉米田(DP+二维BIT)
  9. flex打印图片
  10. leetcode—Palindrome 解题报告
  11. 如何调试什么时候SaveFileDialog会被Dispose
  12. Controller返回值类型ActionResult
  13. 转载:js实现上传图片时 点击浏览后 就可以看到缩略图 很实用
  14. digitalocean解释:private networking和user data、IPv6是什么意思
  15. 一劳永逸的解决AFNetworking3.0网络请求问题(面向对象封装大法,block回调)
  16. javaweb 登陆注册页面
  17. php中常用的字符串格式化函数
  18. ELK学习总结(2-5)elk的版本控制
  19. 生成git私钥
  20. 你还在 Select * 吗?

热门文章

  1. 注入Shellcode并运行攻击
  2. ubuntu安装苹果Windows以及微软雅黑consolas字体
  3. js获取复选框值
  4. 大数据解实例决topn问题
  5. 简易webpack 入门
  6. java实现自动生成小学四则运算——朱庭震,詹祺豪
  7. 【腾讯Bugly干货分享】Android 插件技术实战总结
  8. [转]kaldi ASR: DNN训练
  9. 移动web-bootstrap
  10. HTTP 协议服务器相关概念