[发明专利]一种利用共享内存进行进程间字节流通信的结构及方法有效
申请号: | 201911201099.0 | 申请日: | 2019-11-29 |
公开(公告)号: | CN110990169B | 公开(公告)日: | 2022-11-01 |
发明(设计)人: | 何雪煜 | 申请(专利权)人: | 深圳市风云实业有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京正华智诚专利代理事务所(普通合伙) 11870 | 代理人: | 杨浩林 |
地址: | 518057 广东省深圳市福田区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 共享 内存 进行 进程 字节 流通 结构 方法 | ||
1.一种利用共享内存进行进程间字节流通信的结构,其特征在于,包括单生产者、单消费者及连接生产者与消费者以实现字节流通信的共享内存;
所述共享内存包括用于读写字节流数据的环形队列和组成共享内存状态机的消费者重置标志、生产者重置标志、生产者重置完成标志;所述消费者重置标志用于当消费者需要重新界定字节流边界时设置该标志状态,请求生产者重置共享内存;所述生产者重置标志用于当生产者需要重新界定字节流边界时设置该标志状态,通知消费者字节流边界需要重新界定;所述生产者重置完成标志用于当生产者重置共享内存后设置该标志状态,通知消费者共享内存已完成重置;
所述生产者用于当共享内存状态机处于可通信状态时将需要进行通信的字节流数据写入共享内存的环形队列中;所述共享内存状态机处于可通信状态具体为消费者重置标志状态置为0,生产者重置标志状态置为0,生产者重置完成标志状态置为0;
所述消费者用于当共享内存状态机处于可通信状态时从共享内存的环形队列中读取需要进行通信的字节流数据。
2.如权利要求1所述的利用共享内存进行进程间字节流通信的结构,其特征在于,所述消费者重置标志采用0和1表示该标志的两种状态,其中当消费者需要重新界定字节流边界或消费者被生产者通知字节流边界需要重新界定时将消费者重置标志状态置为1,当消费者不需要重新界定字节流边界或消费者被生产者通知共享内存已完成重置时将消费者重置标志状态置为0。
3.如权利要求2所述的利用共享内存进行进程间字节流通信的结构,其特征在于,所述生产者重置标志采用0和1表示该标志的两种状态,其中当生产者需要重新界定字节流边界或生产者被消费者请求重置共享内存时将生产者重置标志状态置为1,当生产者不需要重新界定字节流边界或生产者已重置共享内存时将生产者重置标志状态置为0。
4.如权利要求3所述的利用共享内存进行进程间字节流通信的结构,其特征在于,所述生产者重置完成标志采用0和1表示该标志的两种状态,其中当生产者重置共享内存后将生产者重置完成标志状态置为1,当已通知消费者共享内存已完成重置后将生产者重置完成标志状态置为0。
5.如权利要求1所述的利用共享内存进行进程间字节流通信的结构,其特征在于,所述共享内存还包括设置在环形队列队列头的队列头指针和环形队列队列尾的队列尾指针;所述队列头指针用于生产者执行写操作,将需要进行通信的字节流数据写入环形队列中;所述队列尾指针用于消费者执行读操作,从环形队列中读取需要进行通信的字节流数据。
6.如权利要求5所述的利用共享内存进行进程间字节流通信的结构,其特征在于,当生产者写入一个字节到环形队列中时,队列头指针向前移动一个字节;当消费者从环形队列中读取一个字节时,队列尾指针向前移动一个字节。
7.一种利用共享内存进行进程间字节流通信的方法,其特征在于,包括以下步骤:
S1、利用权利要求1-6任一所述结构中生产者和消费者获取共享内存;
S2、判定生产者或消费者是否重新界定字节流边界;若是,则执行步骤S3;若否,则执行步骤S4;
S3、根据生产者或消费者界定字节流边界的需求对共享内存状态机进行跳转,并重置共享内存;
S4、生产者将需要进行通信的字节流数据写入共享内存的环形队列中,消费者从共享内存的环形队列中读取需要进行通信的字节流数据。
8.如权利要求7所述的利用共享内存进行进程间字节流通信的方法,其特征在于,所述步骤S3中当生产者需要重新界定字节流边界时包括以下分步骤:
A1、生产者将生产者重置标志状态置为1;
A2、消费者获取生产者重置标志状态,将消费者重置标志状态置为1;
A3、生产者获取消费者重置标志状态,清空共享内存中的环形队列,将生产者重置标志状态置为0,并将生产者重置完成标志状态置为1;
A4、消费者获取生产者重置完成标志状态,将消费者重置标志状态置为0;
A5、生产者获取消费者重置标志状态,将生产者重置完成标志状态置为0。
9.如权利要求7所述的利用共享内存进行进程间字节流通信的方法,其特征在于,所述步骤S3中当消费者需要重新界定字节流边界时包括以下分步骤:
B1、消费者将消费者重置标志状态置为1;
B2、生产者获取消费者重置标志状态,清空共享内存中的环形队列,将生产者重置标志状态置为0,并将生产者重置完成标志状态置为1;
B3、消费者获取生产者重置完成标志状态,将消费者重置标志状态置为0;
B4、生产者获取消费者重置标志状态,将生产者重置完成标志状态置为0。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市风云实业有限公司,未经深圳市风云实业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911201099.0/1.html,转载请声明来源钻瓜专利网。