【发布时间】:2013-06-07 17:59:46
【问题描述】:
这与How do I allow only 1 named Semaphore to be created on a server? 类似,但我在这里询问Java。
我想在我的 Java 应用程序中创建一个信号量,如果该应用程序的另一个实例正在运行并且已经创建了信号量,那么创建将失败(有一个明显的例外)。所以每台服务器只有一个。
我希望在服务器上只能保留一个,而不仅仅是 JVM。但我不希望它跨越多个服务器(或虚拟机)。即,我希望应用能够在 2 个不同的服务器上运行。
这可能吗?如果有,怎么做?
【问题讨论】:
-
你的意思是什么信号量?如果是java.util.concurrent.Semaphore,这个问题就没有意义了。如果某种系统信号量在所有进程中都可用,那么您应该命名所使用的操作系统。
-
@AlexeiKaigorodov 是的 java.util.Semaphore。我希望它适用于任何 O/S(这就是 Java 的想法)。谢谢