Java——》公平锁、非公平锁

推荐链接:
    总结——》【Java】
    总结——》【Mysql】
    总结——》【Redis】
    总结——》【Kafka】
    总结——》【Spring】
    总结——》【SpringBoot】
    总结——》【MyBatis、MyBatis-Plus】
    总结——》【Linux】
    总结——》【MongoDB】
    总结——》【Elasticsearch】

Java——》公平锁、非公平锁

  • 一、概念
  • 二、分类
  • 三、非公平锁的优点
  • 四、非公平锁的缺点

一、概念

锁类型 特点 描述
公平锁 排队竞争锁 线程A获取到了锁资源,线程B没有拿到,线程B去排队,线程C来了,直接排到线程B的后面,等待B拿到锁资源或者是B取消后,才可以尝试去竞争锁资源。
非公平锁 先插队竞争锁,如果不成功再排队竞争锁 线程A获取到了锁资源,线程B没有拿到,线程B去排队,线程C来了,先尝试竞争锁资源
- 成功拿到锁资源:开心,插队成功。
- 没有拿到锁资源:依然要排到线程B的后面,等待B拿到锁资源或者是B取消后,才可以尝试去竞争锁资源。

二、分类

锁类型 描述
synchronized 只有非公平锁
ReentrantLock 有公平锁 & 非公平锁
ReentrantReadWriteLock 有公平锁 & 非公平锁

三、非公平锁的优点

每当锁被释放后,任何一个线程都有机会竞争到锁,有效提高执行性能

四、非公平锁的缺点

可能会产生线程饥饿现象。文章来源地址https://uudwc.com/A/Bve2v

原文地址:https://blog.csdn.net/weixin_43453386/article/details/132810724

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

h
上一篇 2023年09月12日 05:53
Asp.Net 6.0集成 Log4Net
下一篇 2023年09月12日 05:56