相关疑难解决方法(0)

信号量如何以及为什么能够提供比初始化时更多的许可证?

我正在阅读Java Concurrency in Practice一书.在一节java.util.concurrent.Semaphore中,书中有以下几行.它是关于其"虚拟许可"对象的实现的评论

该实现没有实际的许可对象,Semaphore也没有将分配的许可与线程相关联,因此在一个线程中获得的许可可以从另一个线程中释放.您可以将其 acquire视为消费许可和release创建许可; a Semaphore不限于创建它的许可数量.

有人可以解释一下吗?我无法理解这一点.如果我们创建一个固定大小的池,我们会创建固定数量的"许可".从上面的陈述看,"许可证"似乎可以继续增长.为什么这样设计?

java concurrency multithreading semaphore

10
推荐指数
3
解决办法
9532
查看次数

信号量和条件之间的区别(ReentrantLock)

有谁知道这些方法之间的差异acquire ()release ()(java.util.concurrent.Semaphore)和await ()signal (new ReentrantLock().newCondition() ).

你能为这些方法公开一个伪代码吗?

java concurrency semaphore locking

2
推荐指数
1
解决办法
6194
查看次数

标签 统计

concurrency ×2

java ×2

semaphore ×2

locking ×1

multithreading ×1