[发明专利]一种服务端多线程并行数据处理方法及负载均衡方法有效
申请号: | 201410444654.3 | 申请日: | 2012-08-31 |
公开(公告)号: | CN104239149B | 公开(公告)日: | 2017-03-29 |
发明(设计)人: | 周惠;胡光永;谈璐;高红民;彭建华 | 申请(专利权)人: | 南京工业职业技术学院 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;H04L29/08 |
代理公司: | 南京同泽专利事务所(特殊普通合伙)32245 | 代理人: | 石敏 |
地址: | 210000 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种服务端多线程并行数据处理方法,包括以下步骤步骤1、服务端进程启动时,开启一个数据接收线程,开启一个数据分配线程以及开启一个包含多个数据处理线程的数据处理线程池,同时开辟一段用于存储接收到的客户端数据的动态存储区,并按照FIFO方式管理动态存储区;步骤2、数据接收线程通过socket侦听并接收客户端传过来的数据包,直接把数据包放入数据存储区,立即返回继续侦听接收客户端数据;步骤3、数据分配线程对动态存储区进行轮询。 | ||
搜索关键词: | 一种 服务端 多线程 并行 数据处理 方法 负载 均衡 | ||
【主权项】:
一种服务端多线程并行数据处理方法,其特征在于包括以下步骤:步骤1、服务端进程启动时,开启一个数据接收线程(R),开启一个数据分配线程(S)以及开启一个包含多个数据处理线程(D)的数据处理线程池,同时开辟一段用于存储接收到的客户端数据的动态存储区(BM),并按照FIFO方式管理动态存储区(BM);服务端为线程池中的每一个数据处理线程开辟一个动态存储区(SM)和一个初始值为0的计数器;步骤2、数据接收线程(R)通过socket侦听并接收客户端传过来的数据包,直接把数据包放入数据存储区(BM),立即返回继续侦听接收客户端数据;步骤3、数据分配线程(S)对动态存储区(BM)进行轮询,如果动态存储区(BM)存在数据包,则从动态存储区(BM)中依次取出数据包,同时对线程池中的数据处理线程进行轮询,循环检测每个数据处理线程的相对空闲率;如果存在当前待处理数据包个数C为0或者已处理数据包个数n为0的数据处理线程,这样的数据处理线程其相对空闲率最高,则选择其中任意一个数据处理线程,将数据包放入该数据处理线程的动态存储区(SM);否则,将新收到的数据包分配给相对空闲率最高的数据处理线程,所述数据处理线程的相对空闲率按照以下公式计算:式中,为相对空闲率;为该数据处理线程当前待处理数据包个数;为该数据处理线程在处理n个数据包后的数据处理效率,其表达式为如下:其中,n为已处理数据包个数,为该数据处理线程处理第n个数据包所耗费时间。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京工业职业技术学院,未经南京工业职业技术学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410444654.3/,转载请声明来源钻瓜专利网。