Synchronized与Lock的区别和优缺点

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

1.  synchronized 是 Java 的一个内置特性关键字,而 Lock 是 Java 的一个接口类;

2.  synchronized 在发生异常时会自动释放线程占用的锁,而 Lock 在发生异常时(不发生也一样)需要主动在 finally 中调用 unLock() 去释放锁;

3.  Lock 可以让等待锁的线程响应中断,而 synchronized 无法响应中断,会一直等待下去;

4.  Lock 可以知道有没有成功获取到锁,而 synchronized 无法办到;

5.  Lock 可以提高多线程进行读操作的效率,而 synchronized 不可以;

6.  在性能上来说如果竞争资源不激烈则两者差距不大,如果竞争资源非常激烈(很多线程同时抢占)时 Lock 的性能远远好于 synchronized;

7.  不过要注意 Lock 只能中断阻塞中的线程,一旦获取到锁进入运行状态就无法中断;

8.  Lock 和 synchronized 都可以保证内存可见性。文章来源地址https://www.toymoban.com/news/detail-711312.html

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

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

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

相关文章

  • 面试题:Spring 与 Springboot 的区别以及优缺点

    Spring是一个开源的Java开发框架,旨在简化企业级Java应用程序的开发。它提供了一套完整的基础设施,包括依赖注入、面向切面编程、声明式事务管理等。 Spring Boot是一个用于创建独立的、生产级别的基于Spring的应用程序的框架。它将各种Spring组件和第三方库整合到一个能够

    2024年02月13日
    浏览(27)
  • 详解单体架构和微服务(概念,优缺点和区别)

    单体架构的整个系统是一个War包,即war包走天下。微服务架构的项目是很多个war包(一个子系统一个)。 单体架构的优点: 架构简单 开发测试部署简单 缺点: 随着业务扩展,代码越来越复杂,代码质量参差不齐,开发人员的水平不一,修改每一个小bug都是心惊胆战的。并且在

    2024年02月12日
    浏览(28)
  • AES和DES算法的区别,分别有哪些优缺点

    AES(高级加密标准)和DES(美国数据加密标准)是对称加密算法。AES是美国联邦政府采用的一种区块加密标准。DES是对称性加密里常见的一种,是一种使用密钥加密的块算法。那么AES和DES算法的区别在哪里,这两者有哪些优缺点呢?   什么是AES? AES一般指高级加密标准,又

    2023年04月08日
    浏览(39)
  • vue -- 单页面应用和多页面应用区别及优缺点

    Vue单页面应用(SPA) 和 多页面应用(MPA) 是两种常见的前端应用架构模式,它们在开发方式、性能以及用户体验方面有着不同的特点。 单页面应用(SPA ): SPA 是一种基于JavaScript的应用程序,通过动态更新页面的方式来实现交互和导航。 整个应用只有一个HTML页面,所有的

    2024年01月19日
    浏览(33)
  • 单页面(SPA)与服务端渲染(SSR),概念、区别,优缺点

    什么是单页面应用? 什么是多页面应用? 二者有什么区别? 1、单页面应用与多页面应用: 单页面顾名思义就是整个应用只有一个Html页面,页面的切换其实是组件的切换。这样设计的好处就是不进行页面的切换应用会更加流畅,用户体验好,不需要记载整个页面。良好前后

    2024年02月14日
    浏览(28)
  • 简述 TCP 和 UDP 的区别以及优缺点和使用场景?

    1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。Tcp通过校验和,重传控制,序号标识,

    2024年02月11日
    浏览(23)
  • 什么是聚集索引和非聚集索引以及优缺点和区别

    一、聚集索引 聚集索引(Clustered Index)是一种在关系数据库管理系统中常见的索引类型。它的作用是通过在表中创建索引,将表中的数据物理上按照索引的键值顺序进行排序,并以此为依据进行访问和处理。聚集索引仅能有一个,并且它的顺序决定了整个表中记录的物理存储

    2024年02月15日
    浏览(40)
  • Spark内容分享(十二):Spark 和 MapReduce 的区别及优缺点

    1、Spark处理数据是基于内存的,而MapReduce是基于磁盘处理数据的 MapReduce是将中间结果保存到磁盘中,减少了内存占用,牺牲了计算性能。 Spark是将计算的中间结果保存到内存中,可以反复利用,提高了处理数据的性能。 2、Spark在处理数据时构建了DAG有向无环图,减少了shuf

    2024年01月23日
    浏览(33)
  • 你真的了解HashSet 和HashMap的区别、优缺点、使用场景吗?

      HashSet 和 HashMap 是 Java 集合框架中的两个常用类,它们都用于存储和管理数据,但在使用方式、功能和性能上有很大的区别。 HashSet:  HashSet 是一个基于哈希表的集合,用于存储不重复的元素,它不存储键值对。它实际上是基于 HashMap 实现的,只存储了键,而值都设置为同

    2024年02月05日
    浏览(26)
  • Java 代理模式详解,静态代理与动态代理的区别及优缺点

    代理模式是一种常用的设计模式,它允许通过引入一个代理对象来控制对目标对象的访问。在Java中,代理模式被广泛应用,它可以提供额外的功能,如权限检查、缓存、日志记录等,同时还能在不修改目标对象的情况下对其进行扩展。 代理模式(Proxy Pattern)是指通过代理对象

    2024年02月11日
    浏览(27)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包