lock 和synchronized 的区别

这篇具有很好参考价值的文章主要介绍了lock 和synchronized 的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1  lock是接口实现,synchronized是内置方法native实现

2 lock可以主动释放锁,synchronized只能是加锁的代码块执行完毕或者遇到异常退出被动的释放锁

3 性能方面,如果竞争资源不是很激烈的情况,两者的性能差不太多,如果是在竞争资源激烈的情况下,lock的性能要优于synchronized,但是这个也不是绝对的,

在JDK6 以后对synchronized做了进一步的优化和提升,synchronized的性能也获得了很大的提升和改进,在一定程度上和lock没有太明显的差别

文章来源地址https://www.toymoban.com/news/detail-711310.html

到了这里,关于lock 和synchronized 的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 线程中synchronized关键字和lock接口的异同

    一、synchronized 1.可以用来修饰代码块  2.可以用在方法上 修饰同步方法 while (true) { try { Thread.sleep(200); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(sellTicket()) { break; } } 二、lock接口  1.用此接口要用     ReentrantLock l = new ReentrantLock();     

    2024年02月08日
    浏览(44)
  • Java并发之synchronized关键字和Lock接口

    欢迎点赞阅读,一同学习交流,有疑问请留言 。 GitHub上也有开源 JavaHouse,欢迎star 当开发过程中,我们遇到并发问题。怎么解决? 一种解决方式,简单粗暴:上锁。将千军万马都给拦下来,只允许一个人过独木桥。书面意思就是将并行的程序变成串行的程序。现实的锁有门锁

    2024年02月08日
    浏览(40)
  • Autosar RTE C/S接口实现及synchronous与asynchronous的区别

    在之前的一篇文章中,介绍了RTE中的S/R接口,也是RTE中使用最多的接口。在Autosar定义的Interface中,分为Require Ports(需求接口,对应的S/R接口中的 Receiver接口 ,C/S接口中的 Client接口 )和Provide Ports(提供接口,对应S/R接口中的 Sender接口 ,C/S接口中的 Server接口 )。 S/R接口主要针对

    2024年02月10日
    浏览(42)
  • 有关多线程环境下的Volatile、lock、Interlocked和Synchronized们

    📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香! 📢本文作者:由webmote 原创 📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 ! 多线程下的变量访问,就如同

    2024年02月08日
    浏览(38)
  • JUC并发编程-线程和进程、Synchronized 和 Lock、生产者和消费者问题

    源码 + 官方文档 面试高频问! java.util 工具包、包、分类 业务:普通的线程代码 Thread Runnable Runnable 没有返回值、效率相比入 Callable 相对较低! 线程、进程,如果不能使用一句话说出来的技术,不扎实! 进程:一个程序,QQ.exe Music.exe 程序的集合; 一个进程往往可以包含多

    2024年01月20日
    浏览(50)
  • 【Java 并发编程】一文详解 Java 内置锁 synchronized

    存在共享数据; 多线程共同操作共享数。 synchronized 可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时 synchronized 可以保证一个线程的变化可见(可见性),即可以代替 volatile。 多线程编程中,有可能会出现多个线程同时访问同一个共享、可变

    2024年02月02日
    浏览(35)
  • ReentrantLock与synchronized的区别

    synchronized 基于代码块的方式控制加锁与解锁 ReentrantLock 基于 lock(加锁) 与 unlock(解锁) 方式控制加锁与解锁 synchronized 只是单纯的加锁与解锁 ReentrantLock 对于 加锁成功 与synchronized 并无区别 ReentrantLock 对于 加锁失败 提供了额外的 tryLock方法 通过tryLock方法可以直接返回false, 由程

    2023年04月10日
    浏览(61)
  • 《ReentrantLock与synchronized的区别》

    目录 Synchronized同步锁 synchronized的用法: ReentrantLock ReentrantLock和Synchronized的区别   Synchronized同步锁         使用Synchronized将一段代码锁起来,同一时间只允许一个线程访问。只有获取了这把锁的线程才能访问这段代码,并且只有一个线程拥有这把锁。这样就保证了代

    2024年02月16日
    浏览(34)
  • 【后端面经-Java】Synchronize和ReentrantLock区别

    1.1 线程安全锁 Synchronize(同步锁)和ReentrantLock(可重入锁)都是Java中的常用锁,都是用来保证线程安全的。 两者都是同步锁,且都是阻塞同步。 阻塞同步:当一个线程获取锁后,其他线程只能等待(进入阻塞态),等待获取锁的线程释放锁后,其他线程才能获取锁。 1.2

    2024年02月11日
    浏览(38)
  • java 多线程Lock接口

    Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作。 Lock接口中常用的方法为 lock()  和  unlock() 想要使用Lock接口中方法要先创建Lock锁对象 run方法中用  ck.lock() 来上锁,用  ck.unlock() 来把锁归还。

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包