免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 8991 | 回复: 28
打印 上一主题 下一主题

求助:共享内存管理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-09 09:42 |只看该作者 |倒序浏览
现在有两个进程A,B     A向共享内存里写数据 ,B向共享内存读数据
   问题:A写的时候,B还没来的急取,导致数据被覆盖
   
   用什么方案好管理
   也就是缓存下数据,让B来取,不至于数据被覆盖

论坛徽章:
0
2 [报告]
发表于 2010-11-09 09:44 |只看该作者
信号

论坛徽章:
0
3 [报告]
发表于 2010-11-09 09:45 |只看该作者
我的A线程是抓包进程,写入的数据有可能比B进程取的块,切A进程是不阻塞的

论坛徽章:
0
4 [报告]
发表于 2010-11-09 09:48 |只看该作者
可以使用SystemV信号量来处理,相关API如下
key_t ftok(char *pathname,char proj);
int semget(key_t key,int nsems,int semflg);
int semctl(int semid,int semnum,int cmd,union semun arg);
int semop(int semid,struct sembuf *spos,int nspos);

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
5 [报告]
发表于 2010-11-09 09:55 |只看该作者
那就用文件吧,添加写,别覆盖了

论坛徽章:
0
6 [报告]
发表于 2010-11-09 09:58 |只看该作者
回复 5# hellioncu


    读写很频繁

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
7 [报告]
发表于 2010-11-09 10:09 |只看该作者
回复  hellioncu


    读写很频繁
sblig 发表于 2010-11-09 09:58



    共享内存也是通过文件的吧。

A进程不能阻塞,速度又可能不匹配,可以考虑A进程在内存中缓存一下,等B进程处理完再写

论坛徽章:
0
8 [报告]
发表于 2010-11-09 10:35 |只看该作者
回复 7# hellioncu


    还是没明白我的意思:    我的意思是  A进程不断的抓包,丢到共享内存,与B进程无关   A进程不能阻塞,不去关心B进程有没有读共享内存
  
    不知道链表能不能实现,有人说共享内存不能使用链表,因为共享内存是连续的。。。。

论坛徽章:
0
9 [报告]
发表于 2010-11-09 10:58 |只看该作者
管道。。

论坛徽章:
0
10 [报告]
发表于 2010-11-09 11:01 |只看该作者
回复 9# maxxfire


    也太简洁了吧,能搞具体点吗?  谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP