Shared memory共享内存示例
1. 概述
Shared memory 作为一个独立的库,提供基于共享内存的进程间通信能力,且Shared memory 支持分配在hbmem上的数据零拷贝传输。Shared memory库的使用非常简单,用户仅需熟悉SegReader SegWriter 和SegData三个类的使用,具体使用见example。
2. 功能介绍
shared memory提供基于共享内存的ipc通信,支持hbmem数据零拷贝传输(J3和J5平台)
3. 使用步骤
SegReader端
给定共享内存总大小、每个可写块大小、通信隔离域,和hbmem保持时间(如果使用hbmem),调用shm_init()初始化共享内存
创建SegReader
调用init接口初始化SegReader
循环read数据
退出进程前使用shm_deinit()
SegWriter端
给定共享内存总大小、每个可写块大小、通信隔离域,和hbmem保持时间(如果使用hbmem),调用shm_init()初始化共享内存
给定欲申请共享内存的size和每个可读写块的size,创建SegWriter
调用init接口初始化SegWriter
创建SegData,按照需求填写数据(支持hbmem数据),调用write接口
退出进程前使用shm_deinit()
其中步骤1和步骤5在一个进程种操作一次即可。
4. 示例
本example展示在J3、J5平台上传输的SegData,同时混合hbmem数据(com_buf, graph_buf)和普通堆内存和栈内存数据。

