应用程序的单个实例
Posted
技术标签:
【中文标题】应用程序的单个实例【英文标题】:Single instance of application 【发布时间】:2021-01-27 06:42:14 【问题描述】:一般来说,我们可以通过哪些方式来确保? 这并不特定于任何编程语言。 我只想知道如何防止启动应用程序的第二个实例?
【问题讨论】:
您检查进程是否正在运行,如果是,请不要再次启动它。例如 Windows 中的 TaskManager 显示或 Linux 中的 Top。您选择的编程语言可能/应该有办法获取正在运行的进程列表。 如果你想确保防止用户故意复制和修改可执行文件名称,Mutex 可能更可取 只是用一些语言的方法链接一些相关的帖子:C#, C++, Python, VB.NET, Java @costaparas 我不是从编程语言的角度问的。但我想知道我们可以防止第二个实例启动的可能方法列表?我们可以假设这是一个操作系统面试问题? 【参考方案1】:我可以想到两种方法:
应用端: 在指定位置的某处创建锁定文件。如果它已经存在,则另一个实例正在运行,否则创建锁文件。如果程序退出,请删除锁定文件。 (例如 X 或 firefox 这样做)
操作系统方面:(虽然这不太实用)
2.1。对于所有启动的二进制文件,在某处存储一些哈希值。如果二进制文件已经启动(例如哈希值已经可用),请不要启动它。
2.2。这会经常失败,因为你只能运行一个 JVM、一个 Python 解释器等等。因此,为了改进这一点,操作系统可以将命令行参数添加到哈希值中。
【讨论】:
以上是关于应用程序的单个实例的主要内容,如果未能解决你的问题,请参考以下文章