返回顶部
首页 > 资讯 > 精选 >Java中的锁有哪些分类
  • 826
分享到

Java中的锁有哪些分类

javaava 2023-05-31 05:05:07 826人浏览 薄情痞子
摘要

今天就跟大家聊聊有关Java中的锁有哪些分类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。公平锁/非公平锁可重入锁独享锁/共享锁互斥锁/读写锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重

今天就跟大家聊聊有关Java中的有哪些分类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

公平锁/非公平锁

  • 可重入锁
  • 独享锁/共享锁
  • 互斥锁/读写锁
  • 乐观锁/悲观锁
  • 分段锁
  • 偏向锁/轻量级锁/重量级锁
  • 自旋锁

上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。

公平锁/非公平锁

公平锁是指多个线程按照申请锁的顺序来获取锁。

非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿现象。

对于Java ReentrantLock而言,通过构造函数指定该锁是否是公平锁,默认是非公平锁。非公平锁的优点在于吞吐量比公平锁大。

对于Synchronized而言,也是一种非公平锁。由于其并不像ReentrantLock是通过AQS的来实现线程调度,所以并没有任何办法使其变成公平锁。

可重入锁

可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁。说的有点抽象,下面会有一个代码的示例。

对于Java ReentrantLock而言, 他的名字就可以看出是一个可重入锁,其名字是Re entrant Lock重新进入锁。

对于Synchronized而言,也是一个可重入锁。可重入锁的一个好处是可一定程度避免死锁。

synchronized void setA() throws Exception{  Thread.sleep(1000);  setB();}synchronized void setB() throws Exception{  Thread.sleep(1000);}

--结束END--

本文标题: Java中的锁有哪些分类

本文链接: https://lsjlt.com/news/223669.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java中的锁有哪些分类
    今天就跟大家聊聊有关Java中的锁有哪些分类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。公平锁/非公平锁可重入锁独享锁/共享锁互斥锁/读写锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重...
    99+
    2023-05-31
    java ava
  • MYSQL中的锁主要有哪些分类
    下面讲讲关于MYSQL中的锁主要有哪些分类,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MYSQL中的锁主要有哪些分类这篇文章你一定会有所受益。 在数据库的锁机制中介...
    99+
    2024-04-02
  • MySQL锁及分类有哪些
    今天小编给大家分享一下MySQL锁及分类有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所...
    99+
    2024-04-02
  • java中常见的锁有哪些
    java中常见的锁有:1.乐观锁;2.悲观锁;3.自旋锁;4.偏向锁;5.公平锁;java中常见的锁有以下几种乐观锁java中乐观锁是一种乐观思想,总认为资源和数据不会被修改,并不会对数据进行上锁,但进行写入操作的时会判断数据是否被修改。悲...
    99+
    2024-04-02
  • java中经典的JVM锁有哪些
    本篇内容介绍了“java中经典的JVM锁有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!synchronized synchr...
    99+
    2023-06-17
  • java中锁的知识点有哪些
    今天小编给大家分享一下java中锁的知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。乐观锁和悲观锁悲观锁悲观锁对应...
    99+
    2023-06-30
  • java中代理模式有哪些分类
    java中代理模式有哪些分类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮...
    99+
    2023-06-14
  • MySQL中InnoDB锁模式与锁类型有哪些
    本篇内容介绍了“MySQL中InnoDB锁模式与锁类型有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • ​MySQL数据库中的锁有哪些类型
    这篇文章给大家分享的是有关MySQL数据库中的锁有哪些类型的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。MySQL数据库中的锁有共享锁,排他锁,行锁,表级锁,行级锁以及页面锁。1...
    99+
    2024-04-02
  • MYSQL中锁的模式与类型有哪些
    本篇内容主要讲解“MYSQL中锁的模式与类型有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MYSQL中锁的模式与类型有哪些”吧!在日常开发工作中,我们几乎...
    99+
    2024-04-02
  • java锁的区别有哪些
    公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿现象。对于Java ReentrantLock而...
    99+
    2021-01-14
    java入门 java 区别
  • java中有哪些Lock类
    java中有哪些Lock类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的实现...
    99+
    2023-06-14
  • java中常见的几种锁有哪些
    公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。非公平锁是指多个线程获取锁的顺序,并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁,有可能,会造成优先级反转或者饥饿现象。独享锁/共享锁独享锁是指该锁一次只能被一...
    99+
    2017-11-14
    java入门 java 常见
  • Java中自旋锁的作用有哪些
    这篇文章将为大家详细讲解有关Java中自旋锁的作用有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。锁的优化:自旋锁当多个线程想同时访问同一个资源时,就存在资源冲突,这时,大家最直接想到的...
    99+
    2023-06-06
  • java中读写锁的作用有哪些
    这篇文章给大家介绍java中读写锁的作用有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的...
    99+
    2023-06-14
  • Hibernate中有哪些类型分类
    本篇文章给大家分享的是有关Hibernate中有哪些类型分类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. 实体(Entities)和值(values)为了理解很多与持久化...
    99+
    2023-06-17
  • Java分布式锁的使用方案有哪些
    这篇文章主要讲解了“Java分布式锁的使用方案有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java分布式锁的使用方案有哪些”吧!前言随着互联网技术的不断发展,数据量的不断增加,业务逻...
    99+
    2023-06-04
  • java中内部类的类型有哪些
    java中内部类的类型有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式...
    99+
    2023-06-14
  • java中的容器类有哪些
    java 中的容器类:List(列表)、Set(集)、Queue(队列)、Map(映射)列表(List):关心的是索引,它是一个接口,不能实例化对象,可以存储重复元素。ArrayList(动态数组):List l1=new ArrayLis...
    99+
    2021-02-13
    java入门 java 容器类
  • java中的常用类有哪些
    String类构造方法:StringBuffer类带缓冲区的字符串。Buffer,缓冲区(缓存),只要看到Buffer字样,就是“高效”的代名词。String和StringBuffer的区别:对于经常改变的字符串建议使用StringBuff...
    99+
    2015-08-19
    java基础 java 常用类
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作