synchronized和ReentrantLock区别简介说明

2022-07-27 11:46:25

在多线程开发中,需要锁定指定代码块,使其在同一时间只能由一个线程运行,我们日常开发中常用的同步锁有:

synchronized和ReentrantLock,那么他们两者之间到底有什么不同之处呢?

下文笔者讲述synchronized和ReentrantLock区别简介说明,如下所示

区别1:

灵活性不同

    synchronized是关键字,无灵活性
    ReentrantLock是类
      可利用里面的各种方法操作,也可继承此类编写相应的方法

区别2:

    synchronized无可操作性
    ReentranLock了设置锁的等待时间,避免死锁
    ReentranLock可获取锁的信息
    ReentranLock可实现多路通知

区别3:底层实现方式不同

   synchronized 是在对象头中加入mark word字段
    ReentrantLock底层是调用Unsafe的park方法加锁

  • 作者:qq_25073223
  • 原文链接:https://blog.csdn.net/qq_25073223/article/details/124704782
    更新时间:2022-07-27 11:46:25