当前位置: 首页 > news >正文

JUC(一)

1.AQS原理

1.1.概述

1>.AQS全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架;

2>.特点:

①.用state属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取锁和释放锁;

  • getState: 获取state状态;
  • setStata: 设置state状态;
  • compareAndSetState: cas机制设置state状态;
  • 独占模式是只有一个线程能够访问资源,而共享模式可以允许多个线程访问资源;

②.提供了基于FIFO(先进先出)的等待队列,类似于Monitor的 EntryList;

③.条件变量来实现等待、唤醒机制,支持多个条件变量,(具体的某个条件变量)类似于Monitor的WaitSet;

3>.子类主要实现这样一些方法(默认抛出UnsupportedOperationException):

tryAcquire
tryRelease
tryAcquireShared
tryReleaseShared
isHeldExclusively

4>.获取锁的姿势

// 尝试获取锁,如果获取锁失败
if (!
http://www.lryc.cn/news/18078.html

相关文章:

  • API接口——睡眠带开放能力
  • 面向对象的一点小想法
  • 数据仓库工作问题总结
  • Java常用算法
  • 插画网课平台排名
  • 雷达、定位、跟踪等信号处理邻域SCI期刊整理及推荐
  • NDK C++ 指针常量 常量指针 常量指针常量
  • 常见前端基础面试题(HTML,CSS,JS)(一)
  • Delphi RSA加解密
  • oracle基本操作
  • hive只复制表结构不复制表数据
  • 如何将Linux的NIC 名称更改为 eth0 而不是 enps33 或 enp0s25,只要几秒钟
  • 位运算笔记
  • 2023全国首个区块链平台发布,区块链绿色消费积分系统玩法悄然上市
  • 【异常】因为忘加了租户查询条件,导致重复ID导入失败Duplicate entry ‘XXX‘ for key ‘PRIMARY‘
  • 证明CPU指令是乱序执行的
  • css 属性和属性值的定义
  • Python获取中国大学MOOC某课程评论及其参与人数
  • 【C++】类和对象(完结篇)
  • 低代码开发可以解决哪些问题?
  • Linux 中使用 docker-compose 部署 MongoDB 6 以上版本副本集及配置 SSL / TLS 协议
  • JavaWeb--Mybatis练习
  • Springer-MTA期刊上传Latex要求
  • Graph Embedding基础 图表示学习 什么是Graph Embedding
  • 某直聘tp_token解析
  • 替代启攀微8按键触控八通道触摸芯片-GTC08L
  • Zabbix“专家坐诊”第182期问答汇总
  • PHP、Nginx、openssl ECC证书搭建
  • 秒杀服务------技术点及亮点
  • 【Python数据挖掘入门】一、数据挖掘概况