AQS构建锁和同步器的框架

chatgpt/2023/10/4 7:59:03

1.概述

AQS全称AbstractQueuedSynchronizer,此类在java.util.concurrent.locks包下面,是一个构建锁和同步器的框架,比如ReentrantLock就是基于AQS来实现的

2.AQS实现原理

AQS内部有一个由volatile修饰(保证其可见性)的变量state,用此来表示锁是否被使用,初始化为0,当线程获取到锁时,state加1,此时当其他线程到来时,发现state为1,就会去FIFO队列(先进先出的双向链表)中排队等待,等到占用锁的那个线程执行完毕,state减1,队列中等待的线程按顺序获取锁。

3.AQS中获取锁的两种方式

  • 获取锁:acquire()方法,去FIFO队列中排队,最终一定能获取到锁。

  • 尝试去获取锁 :tryAcquire()方法,如果尝试去获取锁成功,那么就不需要排队,如果失败,则将此线程封装为结点,添加到队列中。

4.AQS中锁的模式

独占锁,同一时间只能有一个线程持有锁,比如ReentrantLock。

共享锁,允许多个线程同时获得锁,比如读写锁中的读锁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-5314858.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

服务配置文件/var/lib/systemd与/etc/systemd/

这两个目录都是用于存储 systemd 服务的配置文件。但它们的作用和用途略有不同。 /etc/systemd/system/: 这个目录存放的是系统管理员自己创建或修改的 systemd 服务配置文件。在这里的配置文件优先级更高,会覆盖默认的 systemd 配置文件。通常,我们可以…

【echartsjs】js实现图表数据 跟动态数据联合展示 三个案例,附带源码

序幕: 所展示示例使用到多个js库,例如:jquery、echarts、liMarquee等等,我是下载到了本地,其他小伙伴记得自己下载相关js库,或者引用线上库 推荐一个获取线上资源网站:BootCDN - Bootstrap 中文…

基于 FFmpeg 的跨平台视频播放器简明教程(七):使用多线程解码视频和音频

系列文章目录 基于 FFmpeg 的跨平台视频播放器简明教程(一):FFMPEG Conan 环境集成基于 FFmpeg 的跨平台视频播放器简明教程(二):基础知识和解封装(demux)基于 FFmpeg 的跨平台视频…

vue3的vuex-class:vuex-facing-decorator

背景 vuex-clas只支持vue2,而vue2和vuex-class已经不再维护;老项目vue2项目升级到vue3,工作量相当大;新项目想继续使用class装饰器的方式开发vue3; 分享好东西 vue3使用vue-facing-decorator替代vue2的vue-class-co…

【Linux 网络】 传输层协议之UDP协议

UDP协议 UDP协议的位置UDP协议的特点UDP协议的格式UDP使用注意事项 UDP协议的位置 在网络套接字编程时用到的各种接口,是位于应用层和传输层之间的一层系统调用接口,这些接口是由系统提供的。我们可以通过这些接口来搭建上层应用,比如HTTP协议…

C语言基础入门详解三

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 一、C语言之函数指针 #include<stdio.h> #include<stdlib.h> /**函数指针 …

【visual studio2019】如何打开即时窗口

在 Visual Studio2019 中打开即时窗口&#xff0c;有两种方法&#xff1a; 1、可以通过“调试”菜单&#xff0c;然后选择“窗口”下的“即时窗口”选项 2、直接使用快捷键“Ctrl Alt I” 此时即时窗口将显示在 Visual Studio2019 的底部。在即时窗口中&#xff0c;可以执…

华为OD真题--选修课--带答案

2023华为OD统一考试&#xff08;AB卷&#xff09;题库清单-带答案&#xff08;持续更新&#xff09;or2023年华为OD真题机考题库大全-带答案&#xff08;持续更新&#xff09; 项目描述 现有两门选修课&#xff0c;每门选修课都有一部分学生选修&#xff0c;每个学生都有选修课…
推荐文章