可重入锁的几个核心要素对标AQS

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 可重入锁的几个核心要素对标AQS,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

在JUC包中AbstractQueuedSynchronizer经常被称作队列同步器(AQS),是JUC包内锁的实现关键,那要实现一个可重入锁需要几个核心要素

  1. 需要一个记录锁状态的变量state,state至少需要两个值0、1,对state操作要保证安全性,需要使用到CAS(自旋)
  2. 需要有一个变量保存当前是那个线程持有锁
  3. 需要一个列表存储当前等待锁的线程的列表
  4. 需要有一个可以唤醒和阻塞线程的操作

那对标AQS

  • 记录锁的状态

可重入锁的几个核心要素对标AQS

  • 保存当前是那个线程持有的锁,在AQS父类AbstractOwnableSynchronizer中

可重入锁的几个核心要素对标AQS

  • 存储当前等待的线程列表

可重入锁的几个核心要素对标AQS

  • 唤醒和堵塞线程的操作

使用的是LockSupport工具类中的lock、pack方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/144725.html

(0)

相关推荐

  • pytest框架中提示no tests ran in 0.02s的解决方法

    在人生的道路上,不管是潇洒走一回,或者是千山独行,皆须是自己想走的路,虽然,有的人并不是很快就能找到自己的方向和道路,不过,只要坚持到底,我相信,就一定可以找到自己的路,只要找到路,就不必怕路途遥远了。

    导读:本篇文章讲解 pytest框架中提示no tests ran in 0.02s的解决方法,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    2023年3月5日
    00
  • java的单例设计模式

    导读:本篇文章讲解 java的单例设计模式,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    Java 2023年2月12日
    00
  • Linux学习-14-Linux文本处理命令(sed)

    在人生的道路上,不管是潇洒走一回,或者是千山独行,皆须是自己想走的路,虽然,有的人并不是很快就能找到自己的方向和道路,不过,只要坚持到底,我相信,就一定可以找到自己的路,只要找到路,就不必怕路途遥远了。

    导读:本篇文章讲解 Linux学习-14-Linux文本处理命令(sed),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    Java自学入门 2023年3月5日
    00
  • Exception in thread “main“ java.lang.NullPointerException如何解决?

    导读:本篇文章讲解 Exception in thread “main“ java.lang.NullPointerException如何解决?,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    2023年2月10日
    00
  • Flask表单的介绍与使用

    表单操作 简介 表单的操作是Web程序开发中最核心的模块之一,绝大多数的动态交互功能都是通过表单的形式实现的。本文会教大家实现简单的表单操作。 普通表单提交 在创建模板login….

    2022年10月10日
    00
  • J2E基础 集合框架之List

    导读:本篇文章讲解 J2E基础 集合框架之List,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    2022年5月21日
    00
  • Git(六):SSH KEY配置(以GitHub为例)

    导读:本篇文章讲解 Git(六):SSH KEY配置(以GitHub为例),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    后端开发 2022年10月23日
    00
  • jmeter元件的作用域与执行顺序

    导读:本篇文章讲解 jmeter元件的作用域与执行顺序,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    后端开发 2022年5月20日
    00
  • typora-beta版本过期解决方案

    1、出现问题 最近使用的typora好好的,突然打开的时候弹出来一个对话框,上面说typora过期了,要下载最新的版本,这让我要经常使用markdown编辑器的人很难受 image…

    2022年8月5日
    00
  • Springboot 整合通用mapper和pagehelper展示分页数据(附github源码)

    导读:本篇文章讲解 Springboot 整合通用mapper和pagehelper展示分页数据(附github源码),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    后端开发 2022年6月28日
    00

发表回复

登录后才能评论