Synchronized和Lock对比

synchronized和lock是Java中提供的两种常用的锁机制,两者对比如下:

  1. 使用方法上
    • synchronize,是Java提供的一个关键字,可以加在方法上,也可以加在特定代码块中
    • lock,是Java提供的一个借口,常用的有ReentrantLock,通过调用lock()和unlock()获取锁和释放锁。通常在finally中添加unlock()防止死锁。
  2. 性能上
    • synchronized,JDK1.5中,synchronized是非常重量级的操作,但是从1.6开始,进行了优化,引入了锁升级机制,性能得到了较大提升。
    • lock,是乐观锁,通过CAS实现,在资源竞争激烈的情况下,使用lock性能会更好。
  3. 支持的功能上
    • synchronized,支持的功能简单,是公平锁,不支持中断
    • lock,支持更多的功能,包括公平、非公平锁,trylock、读写锁、condition等。
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2022 Yin Peng
  • 引擎: Hexo   |  主题:修改自 Ayer
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信