我正在重新处理一个可能会多次启动的Java可执行文件,我希望这个过程一次只执行一个。在C#中,我可以使用命名/系统Mutex来实现这一点,但在Java语言中,这似乎是不可能的。如何实现此功能?
发布于 2010-07-07 19:32:50
您可以使用对文件系统上的文件的独占访问来实现类似的行为。我不认为有和你提到的类似的东西。
示例
发布于 2010-07-07 19:35:27
每次启动Java可执行文件时,都会启动一个新的Java虚拟机(JVM)实例。它们就像一个不同的工作站。这就是为什么Java中没有像系统互斥锁这样的东西。
发布于 2010-07-07 22:34:44
Java是一个最不常见的工具,它提供的功能对所有运行它的平台都是通用的,如果它还没有实现的话。
You could use JNA (一种访问本机功能的简化方法)
在过去,我使用套接字来确保一个程序在运行时不能启动。
正如其他地方指出的那样,基于文件的信号量可以工作,当然,这样做的一个缺点是,如果程序崩溃,那么您的信号量必须手动重置。
https://stackoverflow.com/questions/3194227
复制相似问题