java的信号量

本文深入解析信号量机制,探讨其在防止服务器过载、实现线程限流中的关键作用。以停车场和限时秒杀场景为例,阐述信号量如何通过限制同时访问量来保障系统稳定性和响应速度。

信号量的目的是为了限流,洪峰流量,一起访问,服务器可能服务宕机
限制每次线程的访问量,其他的线程等待。

以停车场为例

这是直接锁,有多个线程,但是只有有限数量的“车位”可以用,因此排队等待,出来一个再进去一个。
在这里插入图片描述
继续

无参方法tryAcquire()的作用是尝试的获得1个许可,如果获取不到则返回false,该方法通常与if语句结合使用,其具有无阻塞的特点。无阻塞的特点可以使线程不至于在同步处一直持续等待的状态,如果if语句判断不成立则线程会继续走slse语句,程序会继续向下运行。
以限时秒杀为例,一次只能进入五个,判定成功进去,判定失败out,不会阻塞。

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值