文章目录
已经学习了:一篇文章带你完整复习 Java 中锁的相关知识 - 上
这里继续把相关知识补充完整,后续还会继续补充。
一、Semaphore
详细内容学习可参考:一篇文章带你深入了解多线程中的信号量 Semaphore
Semaphore是一种基于计数的信号量,在定义信号量对象时可以设定一个阈值,基于该阈值,多个线程竞争获取许可信号,线程竞争到许可信号后开始执行具体的业务逻辑,业务逻辑在执行完成后释放该许可信号。在许可信号的竞争队列超过阈值后,新加入的申请许可信号的线程将被阻塞,直到有其他许可信号被释放。
Semaphore的基本用法如下:
Semaphore对锁的申请和释放和ReentrantLock类似,通过acquire方法和release方法来获取和释放许可信号资源。