synchronized和ReentrantLock的区别
2024-10-15 09:12:25
synchronized和ReentrantLock的区别
synchronized是和if、else、for、while一样的关键字,ReentrantLock是类,这是二者的本质区别。
既然ReentrantLock是类,那么它就提供了比synchronized更多更灵活的特性,可以被继承、可以有方法、可以有各种各样的类变量,ReentrantLock比synchronized的扩展性体现在几点上:
(1)ReentrantLock可以对获取锁的等待时间进行设置,这样就避免了死锁
(2)ReentrantLock可以获取各种锁的信息
(3)ReentrantLock可以灵活地实现多路通知
另外,二者的锁机制其实也是不一样的:ReentrantLock底层调用的是Unsafe的park方法加锁,synchronized操作的应该是对象头中mark word.
最新文章
- 闲来无事,写个基于UDP协议的Socket通讯Demo
- #Deep Learning回顾#之2006年的Science Paper
- PL/SQL如何导入dmp文件
- MVC知识进阶01
- Linux磁盘管理之元数据、文件和目录、链接文件03
- 【POJ 2923】Relocation(状压DP+DP)
- .net Windows服务程序和安装程序制作图解 及 VS 2010创建、安装、调试 windows服务(windows service)
- bzoj 3594 [Scoi2014]方伯伯的玉米田(DP+二维BIT)
- flex打印图片
- leetcode—Palindrome 解题报告
- 如何调试什么时候SaveFileDialog会被Dispose
- Controller返回值类型ActionResult
- 转载:js实现上传图片时 点击浏览后 就可以看到缩略图 很实用
- digitalocean解释:private networking和user data、IPv6是什么意思
- 一劳永逸的解决AFNetworking3.0网络请求问题(面向对象封装大法,block回调)
- javaweb 登陆注册页面
- php中常用的字符串格式化函数
- ELK学习总结(2-5)elk的版本控制
- 生成git私钥
- 你还在 Select * 吗?