windows进程单例

一. 为什么要实现进程单例


二.实现进程单例的思路方法:

    1.思路:

      进程在启动时首先检查当前系统是否已经存在有此进程的实例,如果没有,进程将成功创建并设置标识实例已经存在的标记。此后再创建进程时将会通过该标记而知晓其实例已经存在,从而保证进程在系统中只能存在一个实例。

    2.方法:

      内存映射文件、有名事件量、有名互斥量以及全局共享变量等多种方法来实现

三.具体实现:

     互斥量:

      使用CreateMutex() 得到一个Hanldle句柄,使用GetLastError()判断是否为ERROR_ALREADY_EXISTS,如果是则已经存在。

// 创建互斥量

HANDLE m_hMutex = CreateMutex(NULL, FALSE, "Sample07");

// 检查错误代码

if (GetLastError() == ERROR_ALREADY_EXISTS) {

// 如果已有互斥量存在则释放句柄并复位互斥量

CloseHandle(m_hMutex);

m_hMutex = NULL;

// 程序退出

return FALSE;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,512评论 19 139
  • 所谓多进程参数传递过程,实际上是在程序的多次重复运行时,为保证内存中的进程唯一性又不丢失后来启动时传递的命令行参数...
    goldroc阅读 4,505评论 0 1
  • 一、 【例3-1-4】在操作系统中,要对并发进程进行同步的原因是 。 A. 进程必须在有限的时间内完成 B. 进程...
    ZoeyeoZ阅读 10,569评论 0 9
  • ## 可重入函数 ### 可重入性的理解 若一个程序或子程序可以安全的被并行执行,则称其为可重入的;即当该子程序正...
    夏至亦韵阅读 4,037评论 0 0
  • 一场秋雨后,晴空如洗,秋日的阳光不浓不淡地铺洒开来,悠然徜徉的白云恰到好处地点缀着那美到极致的鄂尔多...
    花开半夏anle阅读 4,266评论 0 1