1.使用QLockFile
QLockFile 使用文件提供在不同的进程间的锁。
QLockFile *lockFile = new QLockFile("temp/appName.app.lock");
if (!lockFile ->tryLock(2000)) { //上锁失败,不能启动
error = AE_ACQUIRE_LOCK;
return error;
}
使用QSharedMemory
QSharedMemory来让单一的线程或者进程锁定共享内存。来保证线程或者进程互斥。
QSharedMemory singleton(a.applicationName());
if(!singleton.create(1)) { //已经存在的
return -1;
}