当前位置: 首页 > 面试题库 >

谈谈 synchronized和ReenTrantLock 的区别?

易昌翰
2023-03-14
本文向大家介绍谈谈 synchronized和ReenTrantLock 的区别?相关面试题,主要包含被问及谈谈 synchronized和ReenTrantLock 的区别?时的应答技巧和注意事项,需要的朋友参考一下

synchronized 早期的实现比较低效,对比 ReentrantLock,大多数场景性能都相差较大,但是在 Java 6 中对 synchronized 进行了非常多的改进。

主要区别如下:

ReentrantLock 使用起来比较灵活,但是必须有释放锁的配合动作;

ReentrantLock 必须手动获取与释放锁,而 synchronized 不需要手动释放和开启锁;

ReentrantLock 只适用于代码块锁,而 synchronized 可用于修饰方法、代码块等。

ReentrantLock 标记的变量不会被编译器优化;synchronized 标记的变量可以被编译器优化。

 类似资料:
  • 本文向大家介绍浅谈Synchronized和Lock的区别,包括了浅谈Synchronized和Lock的区别的使用技巧和注意事项,需要的朋友参考一下 如下所示: Synchronized是内置的java关键字,Lock是一个java类。 Synchronized无法判断是否获取到了锁,Lock可以判断是否获取到了锁。 Synchronized会自动释放锁,Lock必须手动释放锁。 Synchro

  • 本文向大家介绍详谈Lock与synchronized 的区别,包括了详谈Lock与synchronized 的区别的使用技巧和注意事项,需要的朋友参考一下 1、lock是可中断锁,而synchronized 不是可中断锁 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用Ree

  • 本文向大家介绍请谈一谈,get和post的区别?相关面试题,主要包含被问及请谈一谈,get和post的区别?时的应答技巧和注意事项,需要的朋友参考一下 考察点:HTTP请求   (1)在客户端, Get 方式在通过 URL 提交数据,数据 在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。 (2)GET方式提交的数据最多只能有1024字节,而POST则没有此限制。 (3)安

  • 本文向大家介绍谈谈,64位和32位的区别?相关面试题,主要包含被问及谈谈,64位和32位的区别?时的应答技巧和注意事项,需要的朋友参考一下 考察点: 操作系统 操作系统只是硬件和应用软件中间的一个平台。32位操作系统针对的32位的CPU设计。64位操作系统针对的64位的CPU设计。

  • 本文向大家介绍请你谈谈关于Synchronized和lock关键字的理解?相关面试题,主要包含被问及请你谈谈关于Synchronized和lock关键字的理解?时的应答技巧和注意事项,需要的朋友参考一下 考察点:java关键字 synchronized是Java的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。JDK1.5以后引入了自旋锁、锁粗化、

  • 一、线程同步问题的产生及解决方案 问题的产生: Java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查),将会导致数据不准确,相互之间产生冲突。 如下例:假设有一个卖票系统,一共有100张票,有4个窗口同时卖。 public class Ticket implements Runnable { // 当前拥有的票数 private int num =