是否有任何 Java Semaphore 的生产级实现可以在创建信号量后调整许可数量?
问问题
1033 次
1 回答
3
我不能完全给你“现有的生产级”,但我可以给你“现有的源代码”,为现有的生产级实现提供一个薄包装。怎么样?
本质上,您可以扩展Java 的 Semaphore 类来实现您想要的。所以,你站在巨人的肩膀上。
- 要将许可数量增加 X 次,请调用Semaphore.release(X)
- 要减少许可数量,请调用受保护的方法Semaphore.reducePermits(X)。
第 2 项,受保护的方法,解释了为什么需要扩展Semaphore 类。
有关完整的实现和更好的解释,请参阅此博客条目:
http://blog.teamlazerbeez.com/2009/04/20/javas-semaphore-resizing/
于 2012-07-23T10:42:54.903 回答