[发明专利]一种处理连接请求的方法及装置在审
申请号: | 201210476735.2 | 申请日: | 2012-11-19 |
公开(公告)号: | CN102981901A | 公开(公告)日: | 2013-03-20 |
发明(设计)人: | 张厚瑞 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100086 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 处理 连接 请求 方法 装置 | ||
技术领域
本发明涉及一种通用线程池技术,特别涉及一种处理连接请求的方法及装。
背景技术
目前的大多数网络服务器,包括应用服务器、Web服务器、Email服务器以及数据库服务器等都具有一个共同点,就是单位时间内必须处理数目巨大的连接请求,但处理时间却相对较短。
传统多线程方案中我们采用的服务器模型则是一旦接受到请求之后,即创建一个新的线程,由该线程执行任务。任务执行完毕后,线程退出,即“即时创建,即时销毁”的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么服务器将处于不停的创建线程,销毁线程的状态。
我们将传统方案中的线程执行过程分为三个过程:T1、T2、T3。
T1:线程创建时间
T2:线程执行时间,包括线程的同步等时间
T3:线程销毁时间
那么我们可以看出,线程本身的开销所占的比例为(T1+T3)/(T1+T2+T3)。如果线程执行的时间很短的话,这比开销可能占到20%-50%左右。如果任务执行时间很频繁的话,这笔开销将是不可忽略的。
除此之外,线程池能够减少创建的线程个数。通常线程池所允许的并发线程是有上界的,如果同时需要并发的线程数超过上界,那么一部分线程将会等待。而传统方案中,如果同时请求数目为2000,那么最坏情况下,系统可能需要产生2000个线程。尽管这不是一个很大的数目,但是也有部分机器可能达不到这种要求。
因此线程池的出现正是着眼于减少线程池本身带来的开销。线程池采用预创建的技术,在应用程序启动之后,将立即创建一定数量的线程(N1),放入空闲队列中。这些线程都是处于阻塞(Suspended)状态,不消耗CPU,但占用较小的内存空间。当任务到来后,缓冲池选择一个空闲线程,把任务传入此线程中运行。当N1个线程都在处理任务后,缓冲池自动创建一定数量的新线程,用于处理更多的任务。在任务执行完毕后线程也不退出,而是继续保持在池中等待下一次的任务。当系统比较空闲时,大部分线程都一直处于暂停状态,线程池自动销毁一部分线程,回收系统资源。
基于这种预创建技术,线程池将线程创建和销毁本身所带来的开销分摊到了各个具体的任务上,执行次数越多,每个任务所分担到的线程本身开销则越小,不过我们另外可能需要考虑进去线程之间同步所带来的开销。
发明内容
本发明所要解决的技术问题是提供一种能够自动调节任务模块中空闲任务模块的数量,节省创建和销毁工作任务模块的时间的处理连接请求的方法及装置。
本发明解决上述技术问题的技术方案如下:一种处理连接请求的方法,包括以下步骤:
步骤1:创建管理单元;
步骤2:创建工作任务模块,工作任务模块中设置最大预定数量的空闲任务模块,同时设定空闲任务模块的数量最小时为最小预定数量;
步骤3:创建请求任务模块,所述任务模块用于存储连接请求信息;
步骤4:管理单元接收服务器外部的终端发送的连接请求信息,并将接收到的连接请求信息发送给请求任务模块;
步骤5:管理单元将请求任务模块中的连接请求信息发送给工作任务模块后,工作任务模块转变为工作模块,空闲任务模块转变为工作子模块;
步骤6:工作模块处理完连接请求信息后转变为工作任务模块,工作子模块处理完连接请求信息后转变为空闲任务模块,管理单元通过销毁或创建空闲任务模块,进而调节工作任务模块中空闲任务模块的数量,使空闲任务模块的数量小于最大预定数量且大于最小预定数量;
步骤7:工作任务模块等待管理单元再次分配连接请求信息。
本发明的有益效果是:能够自动调节请求任务模块中空闲任务模块的数量,节省创建和销毁工作任务模块的时间。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤6中当空闲任务模块的数量大于最大预定数量时,管理单元销毁多于最小预定数量的空闲任务模块。
采用上述进一步方案的有益效果是销毁多余的空闲任务模块,防止过多空闲任务模块占用系统空间。
进一步,所述步骤6中当空闲任务模块的数量小于最小预定数量时,管理单元创建空闲任务模块,至空闲任务模块数量等于最大预定数量。
采用上述进一步方案的有益效果是创建新的空闲任务模块,防止在获取到新的任务节点时没有足够的子模块。
一种处理连接请求的装置,包括创建管理单元模块,创建模块,创建缓存请求任务模块,获取请求任务模块,转发模块,调节模块,等待模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210476735.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:衣物清洗甩干一体机
- 下一篇:一种用于移动设备的输入事件按需派发方法