Java中线程同步锁和互斥锁有啥区别

区别是:互斥是通过竞争对资源的独占使用,彼此没有关系,也没有固定的执行顺序。同步是线程通过一定的逻辑顺序占有资源,有一定的合作关系去完成任务。同步锁是为了保证每个线程都能正常执行原子不可更改操作。

Java中线程同步锁和互斥锁有啥区别-Worktile社区

同步锁

同步锁是为了保证每个线程都能正常执行原子不可更改操作,同步监听对象/同步锁/同步监听器/互斥锁的一个标记锁。

每个Java对象都有且只有一个同步锁,在任何时刻,非常多只允许一个线程拥有这把锁,当消费者线程试图执行以带有synchronized(this)标记的代码块时,消费者线程必需先获得this关键字引用的Stack对象的锁。

同步是线程通过一定的逻辑顺序占有资源,有一定的合作关系去完成任务。

互斥锁

在编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为” 互斥锁” 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。

互斥锁实际的效率还是可以让人接受的,加锁的时间大概100ns左右,而实际上互斥锁的一种可能的实现是先自旋一段时间,当自旋的时间超过阀值之后再将线程投入睡眠中,因此在并发运算中使用互斥锁(每次占用锁的时间很短)的效果可能不亚于使用自旋锁。

互斥是通过竞争对资源的独占使用,彼此没有什么关系,也没有固定的执行顺序。

延伸阅读:

什么是Java?

Java具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的形式和感觉,但它要比C++语言更易于使用,而且在编程时彻底采用了一种以对象为导向的方式。

Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。

Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.8,最近版本为Java19。

文章标题:Java中线程同步锁和互斥锁有啥区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38047

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月13日 下午10:50
下一篇 2023年2月13日 下午10:52

相关推荐

  • DevOps能为企业节省多少时间和资源

    在数字化转型的浪潮中,DevOps已经被证明是提升企业效率和节省时间资源的关键策略。DevOps通过1、加强协作与沟通;2、自动化流程;3、持续集成与持续部署(CI/CD);4、快速反馈和迭代的实践,能显著优化软件开发和运营过程。企业通过实施DevOps可节省时间上的成本,其节省百分比可高达20%至…

    2023年11月18日
    17400
  • wed的文件漏洞有哪些

    wed的文件漏洞有:1、SQL注入;2、文件上传漏洞;3、目录遍历;4、XSS(跨站脚本攻击);5、本地文件包含;6、全局变量覆盖。SQL注入就是通过把 SQL 命令插入到 Web 表单,递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令的目的。 1、SQL注入 SQL…

    2023年1月11日
    23800
  • 淘宝的定期系统维护都在维护些什么

    淘宝的定期系统维护涵盖以下几个方面:1、硬件设施的维护;2、软件升级和更新;3、数据备份与恢复;4、性能优化;5、安全防护。其中,硬件设施的维护主要是对服务器和其他硬件设备进行例行检查和维护。 1、硬件设施的维护 对服务器、网络设备、存储设备等硬件设施进行定期的检查、维护和更新,以确保硬件设施的正常…

    2023年7月11日
    35000
  • 项目管理工作计划怎么写

    写项目管理工作计划要包含以下几点:一、项目背景和目标;二、项目范围;三、项目任务和时间表;四、风险管理计划;五、项目资源;六、质量保证。在项目管理工作计划中,首先需要明确项目的背景和目标。这包括项目所处的环境、目标、可行性研究结果等。 一、项目背景和目标 在项目管理工作计划中,首先需要明确项目的背景…

    2023年4月27日
    26000
  • GitHub上有哪些优秀的Java爬虫项目

    摘要:本文重点介绍 GitHub 上的精选 Java爬虫项目,它们以其优秀的设计、高效的爬取性能、易用性和灵活性脱颖而出,对开发者来说无疑是宝贵的资源。这些项目包括 1、WebMagic、2、Jsoup、3、Crawler4j、4、Heritrix。WebMagic 提供一个简单而强大的爬虫框架,专…

    2023年11月13日
    32700
  • oa刊是什么

    OA刊,代表开放获取(Open Access)期刊,为读者提供免费获取科研结果的平台,使研究成果对所有人开放。1、促进学术交流,2、加速知识传播,3、降低研究成本。开放获取期刊经常采用作者支付费用的模式,费用被用于编辑和出版服务的成本。 开放获取期刊的实质意义在于公众资金支持的研究应由公众自由即时存…

    2024年1月16日
    10300
  • 如何在云原生环境中保证数据安全

    在探讨云原生环境中保证数据安全的策略时,关键要素涉及1、综合身份验证与授权机制;2、数据加密措施;3、持续监控与审计;4、数据备份与恢复策略;5、网络安全防护;6、应用层安全;7、合规性与安全标准。 其中,2、数据加密措施是保护数据在存储和传输过程中不被未授权访问或泄露的基础。不仅包括数据静态时的加…

    2023年12月28日
    13300
  • 便宜的oa办公系统

    标题:探索成本效益高的OA办公系统 便宜的OA办公系统让中小企业同样能够高效率地管理日常办公流程与企业资源。1、开源解决方案的广泛应用,2、云服务提供商的低成本模式,3、轻量级OA系统的市场竞争力提升。开源解决方案的广泛应用使得企业能够以低成本获取定制化、灵活的系统,节省初始投资并降低长期维护费用,…

    2024年1月15日
    13100
  • 如何下载安装project软件

    下载安装project软件的步骤:一、下载Project安装包;二、安装Project软件;三、激活Project软件;四、使用Project软件。打开任意浏览器,进入Microsoft Project官网软件下载页面。点击“立即购买”或者“免费试用”按钮,进入购买或者试用页面。 一、下载Proje…

    2023年3月30日
    1.1K00
  • pdm和plm的区别是什么

    pdm和plm的区别在于以下几个方面:1、本质不一样;2、概念不一样;3、PDM是PLM的一部分。本质不一样是指,PDM提供产品全生命周期的信息管理,并可在企业范围内为产品设计和制造建立一个并行化的协作环境。 一、本质不一样 PDM提供产品全生命周期的信息管理,并可在企业范围内为产品设计和制造建立一…

    2023年2月20日
    6.2K00

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部