QT间进程通信之共享内存

QT间进程通信之共享内存

 

Qt提供了一种安全的共享内存的实现QSharedMemory,以便在多线程和多进程编程中安全的使用。比如说QQ的聊天的客户端,这里有个个性头象,当点击QQ音乐播放器的时候,启动QQ音乐播放(启动一QQ音乐播放器的进程)这时QQ音乐播放器里也有一个个性头像,这两者间的头像一样,现用共享内存的方法实现。

先说下实现共享内存的步骤,然后用一具体的实例说明。

向共享内存中提供数据的一方:

1,定义QSharedMemory shareMemory,并设置标志名shareMemory.setKey();

2,将共享内存与主进程分离 shareMemory.detach()

3,创建共享内存 shareMemory.create()

4,将共享内存上锁shareMemory.lock()

5,将进程中要共享的数据拷贝到共享内存中;

6,将共享内存解锁shareMemory.unlock()

从共享内存中取数据的一方:

1,定义QSharedMemory shareMemory,并设置共享内存的标志名shareMemory.setKey()注意设置的要与提供内存共享的一方要一样。

2,将共享内存上锁shareMemory.lock()

3,将共享内存与主进程绑定shareMemory.attach(),使该进程可以访问共享内存的数据;

4,从共享内存中取数据;

5,使用完后将共享内存解锁shareMemory.unlock(),另外将共享内存与该进程分离shareMemory.detach()

 程序运行图:

程序源码下载地址:http://download.csdn.net/detail/pzhsunxu/6685095

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值