首页 > 编程语言 >java中公平锁非公平锁的区别

java中公平锁非公平锁的区别

时间:2022-09-07 19:44:32浏览次数:66  
标签:多线程 java 获取 线程 公平 会先 争抢 锁非

公平锁:多线程按照申请锁的顺序来获取锁,不会出现争抢的情况。

非公平锁:多线程不会按照顺序获取锁,会先尝试去争抢锁,有可能后申请的线程比先申请的线程先抢到锁,在高并发情况下,可能会造成优先级反转和饥饿的现象。(例如ReentrantLock默认为非公平锁)

 

区别:公平锁就是很公平,争抢锁的几率一样,每个线程会先看等待队列是否为空,若为空,直接获取锁,若不为空,自动排队等候获取锁;非公平锁就是所有的线程都会优先去尝试争抢锁,不会按顺序等待,若抢不到锁,再用类似公平锁的方式获取锁。

标签:多线程,java,获取,线程,公平,会先,争抢,锁非
From: https://www.cnblogs.com/xiaohouye/p/16667042.html

相关文章

  • javascript第一天
    JavaScript基础-第1天了解变量、数据类型、运算符等基础概念,能够实现数据类型的转换,结合四则运算体会如何编程。体会现实世界中的事物与计算机的关系理解什么是数......
  • 【over】重学Java se
    踩个坑,因为刚学完ssm框架,着急了解原理,我尝试着去了解spring的源码,后来才发现,没有开发经验,还是别谈了解源码了,好几十万行的代码,在我现在这个阶段来说,不光说看不懂,看的东西也......
  • Logstash深入收集Java日志
    Logstash深入收集Java日志没有修改Json格式在企业中,我们看到tomcat日志遇到异常(exception)一条日志可能是几行或者十几行甚至几十行,组成的,那么,我们需要将多行日志变成......
  • java获取当前日期和前一周、前一月、前一年的日期
    java获取当前日期和前一周、前一月、前一年的日期publicstaticvoidmain(String[]args){SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd......
  • java读取和设置配置文件中的属性参数
    想必大家和我一样经常在项目中读取一些配置文件,因为读取的配置很少,结构简单又不想搞个读取xml,比较麻烦。所以这时大多采取读取.properties配置文件,我们和大名鼎鼎的log4j......
  • java - 实体类里浅拷贝 与 深拷贝
    1.背景  因为存在集合类,因此引出了浅拷贝与深拷贝,浅拷贝无法将List<TreeData> 这样的指定栈堆的类型字段new一个新的地址,需要使用深拷贝才能解决2.浅拷贝......
  • Description Resource Path Location Type Java compiler level does not match t
    问题:DescriptionResourcePathLocationTypeJavacompilerleveldoesnotmatcht今天在自己项目中整合HBaseAPI的时候遇到了这个问题,想了半天也不知道自己干了什么......
  • java并发编程之CompletionService(转载)
    如果我有一个任务想要异步执行,可以使用CompletableFuture,那如果我有多个任务呢,想要并发执行或者串行执行,又想要快速拿到异步执行的结果。那推荐你使用ExecutorCompletion......
  • javascript 过滤字符串中script并且替换掉 xss注入攻击+js调试
    最近发现网上找答案也是80%类似结果。js调试可以在浏览器里,f10,f11可以比较准确。functionscriptReplace(str){if(newRegExp(".*?script[^>]*?.*?(<\/.*?sc......
  • 【JAVA UI】【HarmonyOS】 鸿蒙setBindStateChangedListener的基本使用
    ​ 参数讲解setBindStateChangedListener(Component.BindStateChangedListener)方法说明:该组件是否添加到窗口的组件树上示例findComponentById(ResourceTable.Id_te......