可调节的信号量

时间:2012-07-23 09:58:52

标签: java multithreading semaphore

是否有任何Java Semaphore的生产级实现可以在创建信号量后调整许可数量?

1 个答案:

答案 0 :(得分:3)

我不能完全给你'现有的生产级',但我可以给你'现有的源代码',提供一个瘦的包装围绕现有的生产级实现。怎么样?

基本上,您可以扩展 Java的Semaphore类来实现您想要的功能。所以,你站在巨人的肩膀上。

  1. 要增加许可证数量X次,请致电Semaphore.release(X)
  2. 要减少许可数量,请调用受保护的方法Semaphore.reducePermits(X)
  3. 第2项,受保护的方法,解释了为什么你需要扩展 Semaphore类。

    有关完整实施和更好的解释,请参阅此博客条目:

    http://blog.teamlazerbeez.com/2009/04/20/javas-semaphore-resizing/