[发明专利]一种多任务间数据通信的实现方法及系统无效
申请号: | 201110329140.X | 申请日: | 2011-10-26 |
公开(公告)号: | CN102426536A | 公开(公告)日: | 2012-04-25 |
发明(设计)人: | 梁亚宁 | 申请(专利权)人: | 深圳市亚特尔科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/54 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 齐永红;郭少晶 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 数据通信 实现 方法 系统 | ||
1.一种多任务间数据通信的实现方法,其特征在于,包括:
分发模块从数据源处获取数据;
分发模块根据作为消费者的各客户端模块已注册的数据类型和客户端特性信息将所述数据写入到共享内存;
所述分发模块根据所述已注册的数据类型和客户端特性信息通知所述作为消费者的各客户端模块来读取所述共享内存中的数据。
2.根据权利要求1所述的多任务间数据通信的实现方法,其特征在于,还包括:
所述分发模块在任务启动时,链接到已创建的用于为所述作为消费者的各客户端模块存储数据的共享内存上;向数据结构注册自己的数据类型和特性信息,其中,所述特性信息至少包括分发模块ID和数据写入共享内存的写入方式;根据分发模块ID创建与自身相对应的消息队列,并根据各客户端模块ID创建与各客户端模块一一对应的消息队列;创建用于指示写入的操作锁;
所述作为消费者的各客户端模块在其任务启动时,链接到已创建的用于为其存储数据的共享内存上;向数据结构注册用于指示分发模块通知作为消费者的客户端模块读取所述共享内存中的数据的信息和客户端特性信息,其中,客户端特性信息至少包括所述客户端模块ID和从共享内存中读取数据的读取方式;每个作为消费者的客户端模块均根据分发模块ID创建与分发模块相对应的消息队列,并根据自身的客户端模块ID创建与自身相对应的消息队列,以及根据其他客户端模块ID创建与其他客户端模块一一对应的消息队列;创建所述用于指示读取的操作锁。
3.根据权利要求2所述的多任务间数据通信的实现方法,其特征在于,该方法还包括:
所述分发模块在所述写入之前,将所述用于指示写入的操作锁指示为写锁,代表在写入所述共享内存的过程不接收其他访问;
所述分发模块在通知所述作为消费者的各客户端模块来读取所述共享内存中的数据之后,将所述用于指示写入的操作锁指示为解写锁。
4.根据权利要求2所述的多任务间数据通信的实现方法,其特征在于,该方法还包括:
对于每个所述作为消费者的客户端模块,在接收到所述分发模块的所述通知后,将所述用于指示读取的操作锁指示为读锁,代表在读取所述共享内存的过程中允许读访问,但拒绝写访问,并开始读取所述共享内存中的数据;
每个所述作为消费者的客户端模块,在读取完所述共享内存中的数据后,将所述用于指示读取的操作锁指示为解读锁。
5.根据权利4所述的多任务间数据通信的实现方法,其特征在于,所述开始读取所述共享内存中的数据具体为:每个所述作为消费者的客户端模块根据需要的读取方式开始读取所述共享内存中的数据,所述读取方式包括:先写入先读取方式,后写入先读取方式,以及同时读取多个数据的方式。
6.根据权利4或5所述的多任务间数据通信的实现方法,其特征在于,该方法还包括:
每个所述作为消费者的客户端模块在每次读取完所述共享内存中的数据后,通过置所述共享内存中的一个标识位的方式通知所述分发模块是否继续向所述作为消费者的各客户端模块的消息队列发送读取共享内存的通知。
7.一种多任务间数据通信的实现系统,其特征在于,包括:分发模块,和至少一个客户端模块;其中,所述至少一个客户端模块至少可成为作为消费者的客户端模块;
所述分发模块,用于根据所述作为消费者的客户端模块已注册的数据类型和客户端特性信息将所述数据写入到共享内存中;并根据所述已注册的数据类型和客户端特性信息通知所述作为消费者的客户端模块来读取所述共享内存中的数据;
所述作为消费者的客户端模块,用于在接收到所述通知后,开始读取所述共享内存中的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市亚特尔科技有限公司,未经深圳市亚特尔科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110329140.X/1.html,转载请声明来源钻瓜专利网。