[发明专利]一种数据处理的方法、相关装置、设备以及存储介质在审
申请号: | 202110127783.X | 申请日: | 2021-01-29 |
公开(公告)号: | CN112506683A | 公开(公告)日: | 2021-03-16 |
发明(设计)人: | 吴岳廷 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518064 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 相关 装置 设备 以及 存储 介质 | ||
本申请公开了一种基于存储和读取实现的数据处理方法,包括获取环形队列的存储状态;若环形队列为已满状态或者非空状态,则根据消费者计数器的当前计数值,从环形队列中获取第一数据包;基于CAS循环操作,对消费者计数器的当前计数值进行原子递增操作,得到下一个计数值;根据下一个计数值从环形队列中获取第二数据包。此外,若环形队列为空闲状态或者非空状态,则根据生产者计数器的当前计数值,向环形队列中加入数据包,并对生产者计数器的当前计数值进行原子递增操作,得到下一个计数值。本申请还提供了相关装置。本申请引入非阻塞机制的环形队列作为数据包缓冲结构,实现数据包的并行处理,降低任务抢占频率,有效地减缓高速缓冲存储器颠簸。
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据处理的方法、相关装置、设备以及存储介质。
背景技术
随着互联网的迅速发展,在客户端与服务器进行交互的过程中,服务器需要处理大量网络请求,这些网络请求通常以数据包的形式进行传输。“数据包”是在客户端与服务器之间传输的单位,“队列”是在数据传输过程中存储数据包的容器,队列将数据包从源传递到目标时充当中间人的角色。
目前,针对于每个数据包,可采用基于加锁的同步队列并行处理的网络通讯方案。在并行处理的网络通讯方案中,引入阻塞的同步队列作为同步队列作为缓冲结构,阻塞会导致操作系统暂停当前的任务或使其进入睡眠状态,直到互斥锁可用,被阻塞的任务才可以解除阻塞状态。
然而,在网络通讯量较大的情况下,使用阻塞队列来在线程之间传递消息会导致严重的资源争用问题,即任务将大量的时间浪费在获取保护队列数据的互斥锁,而非处理队列中的数据上,从而降低了数据处理效率。
发明内容
本申请实施例提供了一种数据处理的方法、相关装置、设备以及存储介质,引入非阻塞机制的环形队列作为数据包的缓冲结构,即线程池的线程可基于消费者计数器的计数值实现等待或者处理操作,不但在等待的过程中无需锁操作,提升数据处理效率,而且通过线程池中的线程来消费环形队列中的数据包,实现了数据包的并行处理,降低了任务抢占的频率,有效地减缓了高速缓冲存储器颠簸。
有鉴于此,本申请一方面提供一种数据处理的方法,包括:
获取环形队列所对应的存储状态,其中,环形队列包括用于存储数据的K个存储单元,K个存储单元构成一个环形结构,K为大于2的整数;
若根据存储状态确定环形队列为已满状态或者非空状态,则根据消费者计数器的当前计数值,从环形队列中获取第一数据包,其中,消费者计数器用于对环形队列中取出的对象进行计数,第一数据包为第一线程执行处理操作的数据包;
基于比较并交换CAS循环操作,对消费者计数器的当前计数值进行原子递增操作,得到消费者计数器的下一个计数值;
根据消费者计数器的下一个计数值,从环形队列中获取第二数据包,其中,第二数据包为当第一线程对第一数据包进行处理时,由第二线程执行处理操作的数据包。
本申请另一方面提供一种数据处理装置,包括:
获取模块,用于获取环形队列所对应的存储状态,其中,环形队列包括用于存储数据的K个存储单元,K个存储单元构成一个环形结构,K为大于2的整数;
获取模块,还用于若根据存储状态确定环形队列为已满状态或者非空状态,则根据消费者计数器的当前计数值,从环形队列中获取第一数据包,其中,消费者计数器用于对环形队列中取出的对象进行计数,第一数据包为第一线程执行处理操作的数据包;
计数模块,用于基于比较并交换CAS循环操作,对消费者计数器的当前计数值进行原子递增操作,得到消费者计数器的下一个计数值;
获取模块,还用于根据消费者计数器的下一个计数值,从环形队列中获取第二数据包,其中,第二数据包为当第一线程对第一数据包进行处理时,由第二线程执行处理操作的数据包。
在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110127783.X/2.html,转载请声明来源钻瓜专利网。