首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中获取独占系统范围的锁

在Java中获取独占系统范围的锁
EN

Stack Overflow用户
提问于 2010-07-07 19:26:58
回答 6查看 7K关注 0票数 17

我正在重新处理一个可能会多次启动的Java可执行文件,我希望这个过程一次只执行一个。在C#中,我可以使用命名/系统Mutex来实现这一点,但在Java语言中,这似乎是不可能的。如何实现此功能?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-07-07 19:32:50

您可以使用对文件系统上的文件的独占访问来实现类似的行为。我不认为有和你提到的类似的东西。

示例

  • Java Programming [Archive] - open File in exclusive lock
  • java.nio.channels.FileLock
票数 8
EN

Stack Overflow用户

发布于 2010-07-07 19:35:27

每次启动Java可执行文件时,都会启动一个新的Java虚拟机(JVM)实例。它们就像一个不同的工作站。这就是为什么Java中没有像系统互斥锁这样的东西。

票数 3
EN

Stack Overflow用户

发布于 2010-07-07 22:34:44

Java是一个最不常见的工具,它提供的功能对所有运行它的平台都是通用的,如果它还没有实现的话。

You could use JNA (一种访问本机功能的简化方法)

在过去,我使用套接字来确保一个程序在运行时不能启动。

正如其他地方指出的那样,基于文件的信号量可以工作,当然,这样做的一个缺点是,如果程序崩溃,那么您的信号量必须手动重置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3194227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档