在我们编写程序的时候,经常会注意到的一个问题就是如何能够让程序只运行一个实例,确保不会让同一个程序多次运行,从而产生诸多相同进程,给我们的带来不便呢?
创建互斥体实现(强烈推荐新手用这个方法)
CreateMutex是一个计算机函数,作用是找出当前系统是否已经存在指定进程的实例。如果没有则创建一个互斥体。这个方法是最为简单的一个方法,语法逻辑比较容易接受,后面的进程,内存,原子等操作,需要有一定操作水平的程序员才能了解。
代码如下
QT平台基于共享内存QSharedMemory(标准C++请参考下面)
基于Qt的实现是利用了Qt中的共享内存(QSharedMemory),第一个运行的exe创建一个共享内存,后续的程序如果能访问到此内存,就认为已有exe存在了。代码如下: