2012-07-23 57 views
0

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

+1

你是什么意思与“门槛”?许可证的数量? – 2012-07-23 10:15:55

+0

@JBNizet是,许可证数量。 – 2012-07-23 11:11:00

+0

当然,正如其他人发布的一样。不要在创建时对计数进行任何人为限制,然后发出您想要的任何许可证。如果你想添加一些,只需要做。如果你想减少,等待信号量尽可能多的时间去除许可证。 – 2012-07-23 11:26:34

回答

3

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

实质上,你可以扩展 Java的Semaphore类获得你想要的。所以,你站在巨人的肩膀上。

  1. 要增加允许X次数,通话Semaphore.release(X)
  2. 为了减少许可证的号码,拨打该保护方法Semaphore.reducePermits(X)

项目2,受保护的方法,解释了为什么您需要扩展 Semaphore类。

对于全面落实和更好的说明,请参阅此博客条目:

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