Qt 共享内存

Qt 共享内存,第1张

Qt中提供了 QSharedMemory 类来实现共享内存相关的 *** 作,本文介绍Qt中 QSharedMemory 类的常用函数以及具体的实现。

头文件 #include <QSharedMemory>

一、类的创建

注:只有设置了key,才可以调用 create() 和 attach() 函数。

二、创建共享内存

size :创建共享内存的大小

mode :内存的访问方式,默认为可读可写。 QSharedMemory 类定义一个枚举类变量 AccessMode ,指定了两种共享内存的访问方式:

三、附加/分离共享内存

附加 :将当前进程附加到以关键字为key的共享内存,默认的访问方式为可读可写。只有附加的共享内存才能读取其内存数据。

分离 :将以关键字为key的共享内存分离进程,分离后,进程将不再能访问共享内存。如果这是附加到共享内存段的最后一个进程,则共享内存段由系统释放,即内容被销毁。

四、锁定/解锁共享内存

用法与常见的锁一样,访问共享内存之前锁定,访问结束后解锁

由于需要人为手动解锁,这里不建议使用这种方式,可以使用 RAII 机制的 lock_guard 来实现自动的加锁、解锁

五、其他

ShareMemA.h

ShareMemA.cpp

ShareMemB.h

ShareMemB.h

1、QSharedMemory类对象的创建

利用QSharedMemory类创建实例对象时,必须为该共享内存指定关键字(即为该共享内存起一个名字)。只有当共享内存被设置了关键字之后,才可以执行创建create()、关联attach()等 *** 作。为共享内存指定关键字有两种方法:

① 通过构造函数QSharedMemory::QSharedMemory ( const QString &key, QObject * parent =0 )为实例对象传入关键字


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11792832.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存