分享

C++建立两个内存缓冲区 通过多线程共享内存进行读写

 禁忌石 2017-04-24

C++建立两个内存缓冲区 通过多线程共享内存进行读写 10

一个request缓冲区,一个receive缓冲区,最多64个线程,每个线程写入一个固定格式为32位的数据。线程先准备将数据存入req,如果没有就插入,有就删除,并将后面的数据指针各减1,然后将req的数据复制到rec区,如果已经有了就不插入。 求各位大神解答,就这么...展开
怀念最初的坦白 | 浏览 1428 次
推荐于2016-02-05 11:55:06
最佳答案
共享内存:实现进程间通信的一种方式。希望访问该内存块的其他进程必须请求对它的访问,或由创建它的进程授予访问内存块的权限。共享内存被映射到使用它的每个进程的地址空间。当一个进程写共享内存,所有进程都立即知道写入的内容,并且可以访问。相当于函数间全局变量的关系类似。进程可能共享一个逻辑地址,也可以共享某些物理地址。
通常使用共享内存比使用管道或队列更简单更有效。共享内存块可用于保存大数据结构。可用于映射文件到内存,使得应用程序减轻了常规文件访问的I/O操作代价。
WIN32 环境创建和使用共享内存所需API:
CreateFileMapping() 创建一个文件映射对象,对文件无限制。
OpenFileMapping() 获取映射对象的句柄
MapViewOfFile() 获取共享内存的起始地址

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多