[发明专利]一种服务器的数据处理方法和装置有效
申请号: | 201710225059.4 | 申请日: | 2017-04-07 |
公开(公告)号: | CN108694083B | 公开(公告)日: | 2022-07-29 |
发明(设计)人: | 朱鑫;许泽伟 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 深圳翼盛智成知识产权事务所(普通合伙) 44300 | 代理人: | 黄威 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 服务器 数据处理 方法 装置 | ||
本发明实施例公开了一种服务器的数据处理方法和装置;本实施例的网络收发层可以包括接受线程和多个辅助线程,接受线程用于接收数据处理请求,并分配给辅助线程,而辅助线程可以通过共享内存队列与业务逻辑线程进行通信,以对数据处理请求进行处理,其中,由于辅助线程具有多个,且与共享内存队列、以及业务逻辑线程三者一一对应,因此,可以大大提升网络收发层的处理能力,且无需进行锁竞争,大大提高了处理效率,有利于改善网络服务器的性能。
技术领域
本发明涉及通信技术领域,具体涉及一种服务器的数据处理方法和装置。
背景技术
随着网络技术的发展、以及用户需求的持续增多,网络服务器所面对的数据量也越来越为庞大,如何提高网络服务器的性能,使其能够更好地处理数据,一直都是人们所关注的问题。
在现有技术中,网络服务器一般分为网络收发层和业务逻辑层,网络收发层主要用于接收各种数据处理请求,而业务逻辑层则可以根据该数据处理请求对数据进行具体的处理,其中,网络收发层与业务逻辑层主要通过共享内存进行通信。例如,当网络收发层接收到数据处理请求后,可以将该数据处理请求保存至共享内存,然后,由多个业务逻辑层之间相互争抢锁,由抢到锁的业务逻辑层对共享内存中所保存的数据处理请求进行读取,并根据该数据处理请求对数据进行处理。
在对现有技术的研究和实践过程中,本发明的发明人发现,由于在现有方案中,网络收发层的处理能力有限,而且,业务逻辑层之间需要进行频繁地竞争,因此,不仅实现较为复杂,而且,处理效率也较低,大大影响网络服务器的性能。
发明内容
本发明实施例提供一种服务器的数据处理方法和装置,不仅实现简单,而且,可以大大提高处理效率,有利于改善网络服务器的性能。
本发明实施例提供一种服务器的数据处理方法,包括:
通过接受线程(AcceptThread)接收数据处理请求,所述接受线程对应多个辅助线程(AuxThread),每个辅助线程对应一个共享内存(SharedMemory)队列;
为所述数据处理请求选择辅助线程,并通过选择的辅助线程将所述数据处理请求写入对应的共享内存队列中;
调用与所述共享内存队列一一对应的业务逻辑线程(Worker);
通过所述业务逻辑线程对所述共享内存队列中的数据处理请求进行处理。
本发明实施例还提供一种服务器的数据处理装置,包括:
接收单元,用于通过接受线程接收数据处理请求,所述接受线程对应多个辅助线程,每个辅助线程对应一个共享内存队列;
选择单元,用于为所述数据处理请求选择辅助线程;
写入单元,用于通过选择的辅助线程将所述数据处理请求写入对应的共享内存队列中;
调用单元,用于调用与所述共享内存队列一一对应的业务逻辑线程;
处理单元,用于通过所述业务逻辑线程对所述共享内存队列中的数据处理请求进行处理。
本发明实施例的网络收发层可以包括接受线程和多个辅助线程,接受线程用于接收数据处理请求,并分配给辅助线程,而辅助线程可以通过共享内存队列与业务逻辑线程进行通信,以对数据处理请求进行处理,其中,由于辅助线程具有多个,且与共享内存队列、以及业务逻辑线程三者一一对应,因此,可以大大提升网络收发层的处理能力,且无需进行锁竞争,即每个业务逻辑线程只需处理与自身对应的共享内存队列中的数据处理请求即可,无需与其他业务逻辑线程争抢锁,所以,从整体上看,该方案相对于现有方案而言,不仅实现简单,而且,可以大大提高处理效率,有利于改善网络服务器的性能。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710225059.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种跨域作业流调度方法及系统
- 下一篇:用于调用数据的方法和装置