[发明专利]一种线程间消息传递方法、装置及电子设备在审
| 申请号: | 201610067778.3 | 申请日: | 2016-01-29 |
| 公开(公告)号: | CN107025142A | 公开(公告)日: | 2017-08-08 |
| 发明(设计)人: | 胡士辉 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54 |
| 代理公司: | 北京同达信恒知识产权代理有限公司11291 | 代理人: | 冯艳莲 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 线程 消息 传递 方法 装置 电子设备 | ||
1.一种线程间消息传递方法,其特征在于,包括:
装载器线程获取至少一个环形缓存中的消息;其中,所述至少一个环形缓存中的消息为生产者发布的消息,每个生产者对应一个环形缓存;所述装载器线程运行在电子设备的多核处理器的一个处理内核上;
所述装载器线程将所述消息保存至至少一个消息队列中,以使消费者线程从所述至少一个消息队列中与自身对应的消息队列中读取所述消息并处理所述消息;其中,每个消费者线程对应一个消息队列;一个消息仅保存在一个消息队列中。
2.如权利要求1所述的方法,其特征在于,所述装载器线程获取至少一个环形缓存中的消息包括:
所述装载器线程依次从所述至少一个环形缓存中获取消息。
3.如权利要求1或2所述的方法,其特征在于,所述装载器线程将所述消息保存至至少一个消息队列中,包括:
所述装载器线程将所述消息组成消息数组;
所述装载器线程在所述至少一个消息队列中随机选取消息队列;
所述装载器线程将所述消息数组一次推入选取的消息队列中;其中,所述每个消费者线程的能力相同。
4.如权利要求1所述的方法,其特征在于,所述装载器线程获取至少一个环形缓存中的消息,包括:
所述装载器线程获取所述至少一个环形缓存中的消息个数;
所述装载器线程获取令牌桶中的令牌的数量;其中,所述令牌的数量随着时间的增加而增大;所述令牌的数量的增长速度小于或等于所述消费者线程的最大处理速度;
如果所述消息个数小于或等于所述令牌的数量,所述装载器线程则从所述至少一个环形缓存中读取所述消息个数的消息,并从所述令牌桶中取出所述消 息个数的令牌;
如果所述消息个数大于所述令牌的数量,所述装载器线程则从所述至少一个环形缓存中读取所述令牌的数量对应的消息,并从所述令牌桶中取出全部令牌。
5.如权利要求1-4任一项所述的方法,其特征在于,在所述所述装载器线程获取至少一个环形缓存中的消息之前,所述方法还包括:
所述装载器线程获取所述生产者的标识;
所述装载器线程根据所述标识获取所述生产者对应的环形缓存。
6.如权利要求1-5任一项所述的方法,其特征在于,一个环形缓存对应多个生产者。
7.如权利要求1-6任一项所述的方法,其特征在于,一个消息队列对应多个消费者线程。
8.一种线程间消息传递装置,其特征在于,包括:
至少一个环形缓存,用于存储生产者发布的消息;其中,每个生产者对应一个环形缓存;
至少一个消息队列,每个消费者线程对应一个消息队列;
装载器,用于获取所述至少一个环形缓存中的消息并将所述消息保存至至少一个消息队列中,以使所述消费者线程从所述至少一个消息队列中与自身对应的消息队列中读取所述消息并处理所述消息;其中,一个消息仅保存在一个消息队列中。
9.如权利要求8所述的装置,其特征在于,所述装载器用于依次从所述至少一个环形缓存中获取消息。
10.如权利要求8或9所述的装置,其特征在于,所述装载器用于将所述消息组成消息数组;在所述至少一个消息队列中随机选取消息队列;将所述消息数组推入选取的消息队列中;其中,所述每个消费者线程的能力相同。
11.如权利要求8所述的装置,其特征在于,所述装载器用于获取所述至少 一个环形缓存中的消息个数;获取令牌桶中的令牌的数量;其中,所述令牌的数量随着时间的增加而增大;所述令牌的数量的增长速度小于或等于所述消费者线程的最大处理速度;如果所述消息个数小于或等于所述令牌的数量,则从所述至少一个环形缓存中读取所述消息个数的消息,并从所述令牌桶中取出所述消息个数的令牌;如果所述消息个数大于所述令牌的数量,则从所述至少一个环形缓存中读取所述令牌的数量对应的消息,并从所述令牌桶中取出全部令牌。
12.如权利要求8-11任一项所述的装置,其特征在于,所述装载器还用于:获取所述生产者的标识;根据所述标识获取所述生产者对应的环形缓存。
13.如权利要求8-12任一项所述的装置,其特征在于,一个环形缓存对应多个生产者。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610067778.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:站徽(搜房网站)
- 下一篇:水龙头(WLB107-07A)





