[发明专利]软总线程序并发资源分配方法在审
| 申请号: | 201510731501.1 | 申请日: | 2015-10-31 |
| 公开(公告)号: | CN105183553A | 公开(公告)日: | 2015-12-23 |
| 发明(设计)人: | 刘国永;徐传伦;张宪强;张万征 | 申请(专利权)人: | 山东智洋电气股份有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48 |
| 代理公司: | 青岛发思特专利商标代理有限公司 37212 | 代理人: | 耿霞 |
| 地址: | 255086 山东省淄*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 总线 程序 并发 资源 分配 方法 | ||
技术领域
本发明属于一种数据处理方法,具体涉及一种软总线程序并发资源分配方法。
背景技术
软总线程序主要应用在网络通信系统中,实现模块间的数据通信功能,是模块间实现跨进程通信的通道。数据传输的效率是衡量该通道的一个重要指标,对软总线而言,它是一个服务模块,同一时刻进行通信的客户端模块有若干个,保证每个模块都能够及时准确的收到信息是软总线首要考虑的问题。
针对这个问题,目前有两种解决方案,一是依赖于硬件扩展,譬如增加计算机内存,提升计算机主频等,借以提高硬件处理能力;二是用软件方法实现多线程、多进程工作,提高数据传输的并发性效率。
上述两种方式虽然能在一定程度上解决数据转发速度问题,但是过于依赖外部条件(譬如硬件配置)就会降低软件产品的推广应用,使软件产品成为特殊应用;同样,如果一味的增加线程或进程数量来解决这个问题,除了硬件依赖性太强之外,系统处理能力反而下降,从而影响了数据传输效率的提升。
发明内容
为解决上述技术中的不足,本发明的目的在于:提供一种软总线程序并发资源分配方法,既能提高数据转发效率,又能消除对硬件条件和线程数量的过度依赖。
为解决其技术问题,本发明所采取的技术方案为:
所述软总线程序并发资源分配方法,包括以下步骤:
第一步,建立应用级线程池,预先启动若干个工作者线程Wn(n=1,2,…,N,N取大于2的整数)和一个管理者线程M;
第二步,为每一个工作者线程Wn定义一个发送缓冲区,由管理者线程M进行该发送缓冲区内发送数据的调配与写入,由工作者线程Wn进行该发送缓冲区内发送数据的读取和转发。
其中,优选方案为:
所述发送缓冲区具体定义方式如下:
定义CBuf类,这个类中包含一个CRec类型的成员变量m_CRec[5000]、一个int类型的读指针m_nRead和一个int类型的写指针m_nWrite,m_CRec[5000]成员变量是发送缓冲区,由管理者线程M和工作者线程Wn共同使用,读指针m_nRead记录发送缓冲区中已经发送到第几条记录,由工作者线程Wn使用;写指针m_nWrite记录发送缓冲区中已经写到第几条记录,由管理者线程M使用。
所述第二步中发送缓冲区内发送数据的调配与写入实现方式如下:
管理者线程M从代发数据堆中获取发送的数据Ds后,计算所有Wn的负荷情况,定义工作者线程Wn的负荷为Wn负荷=abs(m_nWrite-m_nRead),其中abs表示绝对值,找出任务负荷最小者Wnmin后将Ds写入Wnmin的m_CRec发送缓冲区中,同时将该发送缓冲区的写指针m_nWrite加1,M线程无限循环。
所述第二步中工作者线程Wn读取和转发缓冲发送区内数据的方式如下:
工作者线程Wn从自己的发送缓冲区m_CRec中获取一条未发送记录Ds后进行数据转发,成功后将m_CRec发送缓冲区读指针m_nRead加1;然后判断自己的发送负荷量,如果负荷量大于0则继续循环发送。
所述读指针m_nRead如果与写指针m_nWrite相等,则读指针m_nRead加1,覆盖一条未发送记录。
与现有技术相比,本发明具有以下有益效果:
本发明既能提高数据转发效率,又能消除对硬件条件和线程数量的过度依赖。管理者线程M发送任务的调度处理方法简单易用,经过任务的合理分配,发送线程数量控制在5到8个左右就可以达到要求,降低了服务器硬件要求;同时,由于线程数量的合理运用,操作系统调度更加合理,整体效率得到提升,初步估算约为30%-50%;该方法通过负荷量计算,合理分配发送任务,提高了数据转发效率。通过试验验证,利用该方法,在20个客户端情况下,实现任意客户端之间的数据传输,按照每秒50条记录,一条记录长度为10240字节传输,接收方时延仅为200毫秒,比多线程抢占式发送效率提升了300%-500%。
附图说明
图1是实施例1原理图。
具体实施方式
下面结合附图对本发明实施例做进一步描述:
实施例1:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东智洋电气股份有限公司,未经山东智洋电气股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510731501.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种纸护角自动盘曲装置的送料绕弯结构
- 下一篇:动态任务安排方法





