Semaphore信号量的一点理解

本文通过一个简单示例介绍信号量的基本用法,深入解析其核心机制。信号量利用AQS实现线程控制,state代表线程数量。文章详细解释Semaphore中公平锁与非公平锁的静态内部类,并重点阐述acquire和release方法的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来一个简单demo,知道这个东西怎么用的,我们再来分析原理
信号量,整体思路也是实现了AQS state在这里的意义就是线程个数,之前我们说countDownLatch里的state含义是什么了的?
在这里插入图片描述
我们再来看下Semaphore里面的两个静态内部类是不是很熟悉,之前我们说ReentrantLock的时候也会有这两个公平锁和非公平锁的意思

在这里插入图片描述
在这里插入图片描述
接下来我们看下两个主要的方法。

第一个方法,获得执行权限acquire方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第二个方法,释放允许release方法。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值