`
joneand
  • 浏览: 5871 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

程序避免多次启动

阅读更多
程序避免多次启动方法:
1. 通过文件锁FileLock
加锁
    private boolean tryLockFile()
    {
        try
        {
            File lockFile = new File(LOCKFILEPATH);
            
            //文件不存在,创建文件失败时,返回
            if (!lockFile.exists() && (!lockFile.createNewFile()))
            {
                return false;
            }
            //隐藏锁文件
            String setHide = "attrib +H \"" + lockFile.getAbsolutePath() + "\"";
            Runtime.getRuntime().exec(setHide);
            
            ranStream = new RandomAccessFile(lockFile, "rw");
            
            fileLock = ranStream.getChannel().tryLock();
            
            if (null == fileLock)
            {
                return false;
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
            return false;
        }
        return true;
    }


解锁
private void releaseFileLock()
    {
        try
        {
            if (null != this.fileLock)
            {
                fileLock.release();
            }
            
            if (null != this.ranStream)
            {
                this.ranStream.close();
            }
            
            File lockFile = new File(LOCKFILEPATH);
            if (lockFile.exists())
            {
                lockFile.delete();
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    易语言多线程多次启动一个子程序

    本节将详细讨论如何在易语言中实现多线程以及多次启动同一个子程序。 一、易语言简介 易语言是一种以中文作为编程语句的编程环境,它的设计目标是降低编程难度,让更多的人能够参与到编程中来。易语言的语法简洁...

    VC_C++如何防止程序同时启动多次

    在VC++环境下,我们可以通过多种方式实现这个功能,防止程序同时启动多次。以下是一些常用的方法: ### 1. 使用Mutex(互斥体) Mutex是一种同步对象,用于控制对共享资源的访问。在程序启动时创建一个全局命名的...

    Delphi互斥防止程序多次启动,程序内部互斥演示

    本文将深入探讨如何使用Delphi实现程序互斥机制,防止程序的多次启动,以及在程序内部实现互斥操作,确保程序运行的稳定性和数据的一致性。 一、防止程序多次启动 程序互斥是控制并发执行的一种方式,它通过在系统...

    防止程序多次运行

    总结起来,防止C#程序多次启动可以采用单例模式、进程检查或Mutex等方法。具体选择哪种方式取决于你的需求,如考虑可测试性、并发控制等。以上代码只是基础示例,实际应用时可能需要根据项目需求进行调整。例如,...

    易语言多线程多次启动一个子程序源码

    本资源主要讨论的是如何在易语言中实现多线程并多次启动同一个子程序。 易语言的多线程模型基于Windows API中的线程创建功能,通过调用系统API函数来创建和管理线程。在易语言中,你可以使用“创建线程”命令来创建...

    易语言多线程多次启动一个子程序源码-易语言

    本资源提供的是一段关于“易语言多线程多次启动一个子程序”的源代码,对于初学者来说是一个很好的学习素材。多线程技术在现代软件开发中扮演着重要角色,它能充分利用多核处理器的优势,提高程序的执行效率。 在...

    易语言多线程多次启动一个子程序源码.7z

    多线程多次启动一个子程序意味着我们需要创建并管理多个线程来执行同一个子程序,这在并发处理或任务调度中非常常见。 1. **多线程基础知识**:多线程是操作系统提供的功能,允许多个代码段(线程)在同一时间运行...

    C# 应用程序中控制应用程序只启动一次 代码

    标题中的“C#应用程序中控制应用程序只启动一次”就是指实现这样的功能,确保同一时间只有一个实例运行。这个功能在很多类型的软件中都很常见,比如下载管理器、音乐播放器等。 要实现这一目标,我们可以利用...

    C# 开机自动启动程序

    总的来说,创建一个C#开机自动启动程序并监视指定程序涉及对注册表的操作、进程管理以及多线程的使用。理解这些基础知识对于进行系统级的编程非常重要。在开发过程中,要时刻注意安全性和稳定性,避免对用户系统造成...

    程序只能运行一次,防止程序重复执行。

    这个场景下提到的“程序只能运行一次”是指一种技术手段,用来限制程序在同一台计算机上多次启动。下面将详细探讨实现这一功能的方法和相关知识点。 1. **单实例应用程序**:程序设计时,可以采用单实例模式,确保...

    100ms定时器子程序多次调用.rar

    这个“100ms定时器子程序多次调用”示例可能是关于如何在西门子PLC程序中有效利用定时器进行多次重复任务的一个教程。 首先,我们来了解定时器的工作原理。在西门子S7系列PLC中,有多种类型的定时器可供选择,如TON...

    延时启动小程序

    在Windows操作系统中,通常情况下,系统启动时会一次性启动很多后台服务和应用程序,这可能会导致CPU和内存资源的瞬间峰值消耗,从而影响用户体验。通过使用延时启动器,我们可以避免这种情况,让某些软件在系统资源...

    u盘启动程序

    3. **安全使用**:避免使用U盘启动程序进行非法活动,如病毒传播或侵犯他人隐私。 4. **保持更新**:定期更新U盘启动程序,以获取最新的系统补丁和安全修复。 总结,U盘启动程序是电脑维护和系统管理的重要工具,...

    100ms定时器子程序多次调用 PLC程序.rar

    在PLC(可编程逻辑控制器)编程中,100ms定时器子程序的多次调用是一个常见的控制策略,尤其在实现周期性任务或者需要精确时间间隔的操作时。本资源"100ms定时器子程序多次调用 PLC程序.rar"包含了一个名为"100ms...

    禁止一个程序运行多次

    标题中的“禁止一个程序运行多次”是一个常见的计算机管理和系统安全需求。在多任务操作系统中,有时我们希望确保某个程序只能单实例运行,防止资源浪费、冲突或者恶意操作。以下是一些关于如何实现这一目标的知识点...

    延迟顺序启动程序

    在计算机系统管理中,"延迟顺序启动程序"是一种优化启动过程的方法,特别是在多任务和多服务的环境中。这种策略允许用户或系统管理员控制程序和服务的启动顺序,以确保关键组件或依赖关系得到满足,从而避免资源冲突...

    mfc 托盘隐藏程序 避免程序重复执行

    在描述中提到的“mfc 托盘隐藏程序 避免程序重复执行”,这是关于如何设计一个MFC应用程序,使其在托盘区域运行,并防止用户多次启动同一程序。 首先,我们来详细讨论如何在MFC中实现托盘隐藏程序。托盘隐藏通常...

    C#程序只运行一次在运行给警告

    这样的设计可以避免多个程序实例同时运行导致的数据冲突或资源浪费。标题和描述中提到的问题,就是要实现一个C# Winform应用,当程序已经在运行时,再次启动时能够检测到已有实例并给出警告,而不是创建新的实例。 ...

    多气缸顺序启动程序(欧姆龙PLC程序与Fluid_SIM仿真)

    在这个场景中,我们将讨论一个涉及欧姆龙PLC(可编程逻辑控制器)程序和Fluid_SIM仿真的案例,该案例实现了两个气缸的顺序启动操作。这个系统设计用于确保安全、高效的工作流程,避免设备之间的碰撞或不协调动作。 ...

    防止程序多次打开

    本文将基于提供的文件信息,深入探讨“防止程序多次打开”的实现原理与具体实践方法。 ### 实现原理 在Windows环境下,可以利用互斥量(Mutex)来实现程序的单实例运行。互斥量是一种同步对象,用于控制多个进程或...

Global site tag (gtag.js) - Google Analytics