Java无限信号量

2024-05-06

想知道如何not使用信号量限制连接(或任何东西)。

所以你可能会想,“这听起来很愚蠢。”但是,它稍微简化了我的代码,因为它让我可以统一处理有限和无限的情况。

请注意,我并不是在寻找有关如何编写类似内容的建议

if(limited) {
    semaphore.acquire();
}

我可以想出多种方法来使用 if 语句进行分叉。

更具体地说,我正在寻找 Apache Commons 或 Java 解决方案。这只是一个简单的情况,我可以编写自己的简单类来解决它,但是当有广泛可用的实用程序解决方案时,我更喜欢使用它们。


鉴于信号量是一个类,而不是一个接口,您将被迫在逻辑中进行某种形式的分支。为了避免在代码周围散布“if(标志)”检查,您可以创建一个在应用程序中使用的接口,其中包括 Semaphore 类的获取和释放语义。从那时起,提供两个实现,一个本质上是无操作,不提供任何保护,另一个类委托给 java.util.concurrent.Semaphore - 从这一点开始,您可以使用依赖注入来确定使用哪个实现。

同样,分支不可避免地必须存在于某个地方,这只是将其向上移出业务逻辑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java无限信号量 的相关文章

随机推荐