美文网首页
qt 共享内存 单例

qt 共享内存 单例

作者: 你说啥_f478 | 来源:发表于2018-09-17 15:14 被阅读0次

QT 进程间通信之古老的方法(内存共享)

让QT只运行一个实例

以上两篇文章中分别讲述了QSharedMemory的不同作用,第一篇讲了进程间通信,第二篇讲述了怎么让应用程序只启动一个实例。

今天这篇文章我想讲述下,自己在项目中怎么样让程序只启动一个实例,方法就是使用共享内存(其实qt还有一个单例应用程序类(QtSignleApplication),启动的应用程序,默认只能启动一次)

QSharedMemory *shareMem = newQSharedMemory(QString("SingleInstanceIdentify"));//创建一个带唯一标示的共享内存指针

shareMem->create(1)//创建共享内存,如果创建失败,则说明已经创建,否则未创建

if (shareMem->isAttached())//如果进程附加在共享内存上

shareMem->detach();//取消进程附加在共享内存上

delete shareMem;//析构共享内存指针

注意:如果程序异常退出 

则共享内存没有被detach,共享内存段是无法释放的,则应用程序不能被在一起启动,好的做法是,在共享内存create之前,执行attach和detach方法。

QT中实现应用程序的单例化:这篇文件讲述了怎么实现SingleApplication类。

以上是共享内存指针使用方式,下面是共享内存对象使用方式:

QSharedMemory sharedMemory;

sharedMemory.setKey("unique mark");

sharedMemory.create(1)

Qt中实现单例模式(SingleTon)

相关文章

  • qt 共享内存 单例

    QT 进程间通信之古老的方法(内存共享) 让QT只运行一个实例 以上两篇文章中分别讲述了QSharedMemory...

  • Java线程安全问题之静态成员变量、实例成员变量、局部变量

    静态成员变量:线程非安全(无论单例或者非单例皆不安全)。静态变量即类变量,位于方法区,为所有对象共享,共享一份内存...

  • 浅谈 java 单例

    1、单例 饿汉式 为啥是线程安全的? 说明:static 变量 singleTon ,被所有对象共享,在内存中...

  • iOS学习笔记-单例

    1.系统中常用单例 单例模式中,一般用于管理某对象持有资源,可以全局共享。大部分使用单例模式共享信息。 2.单例使...

  • 单例模式

    概括 单例模式,顾名思义,就是在项目运行期间该类只有一个实例(一般是静态类、单例对象在内存中的静态共享区中存储),...

  • 内存泄露优化总结

    1、单例导致内存泄露 单例模式在Android开发中会经常用到,但是如果使用不当就会导致内存泄露。因为单例的静态特...

  • Android 常见内存泄漏

    一、单例造成的内存泄漏Android的单例模式非常受开发者的喜爱,不过使用的不恰当的话也会造成内存泄漏。因为单例的...

  • Android内存优化之内存泄漏

    内存泄漏 内存泄漏一般有以下几种情况:单例、静态变量、Handler、匿名内部类、资源使用未关闭 单例导致的内存泄...

  • 内存泄漏的场景,Handler机制

    内存泄露场景 单例造成的内存泄漏:单例模式的生命周期和应用一样长。单例中包含了一个其他对象的引用(比如contex...

  • 单利模式

    单例的实现 单例模式的优点: 单例模式在内存中只有一个实例,减少了内存开支。特别是一个对象需要频繁的创建、销毁时,...

网友评论

      本文标题:qt 共享内存 单例

      本文链接:https://www.haomeiwen.com/subject/evrqpftx.html