synchronized和ReentrantLock区别简介说明
在多线程开发中,需要锁定指定代码块,使其在同一时间只能由一个线程运行,我们日常开发中常用的同步锁有:
synchronized和ReentrantLock,那么他们两者之间到底有什么不同之处呢?
下文笔者讲述synchronized和ReentrantLock区别简介说明,如下所示
区别1:灵活性不同
synchronized是关键字,无灵活性
ReentrantLock是类
可利用里面的各种方法操作,也可继承此类编写相应的方法
区别2:灵活性不同
synchronized无可操作性
ReentranLock了设置锁的等待时间,避免死锁
ReentranLock可获取锁的信息
ReentranLock可实现多路通知
区别3:底层实现不同
synchronized 是在对象头中加入mark word字段
ReentrantLock底层是调用Unsafe的park方法加锁
正文到此结束
相关文章
热门推荐
评论插件初始化中...