CN102662732A - 一种双驱方式的线程池模型 - Google Patents
一种双驱方式的线程池模型 Download PDFInfo
- Publication number
- CN102662732A CN102662732A CN2012100291224A CN201210029122A CN102662732A CN 102662732 A CN102662732 A CN 102662732A CN 2012100291224 A CN2012100291224 A CN 2012100291224A CN 201210029122 A CN201210029122 A CN 201210029122A CN 102662732 A CN102662732 A CN 102662732A
- Authority
- CN
- China
- Prior art keywords
- thread
- service
- virtual
- thread portion
- pool model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
本发明公开一种双驱方式的线程池模型,其特征在于:所述线程池模型包括服务线程部和虚拟线程部;其中服务线程部,由一个或一个以上的服务线程组成,每一种注册的应用程序向服务器首次请求服务时,服务器为每一种不同的服务应用建立至少一个服务线程;虚拟线程部,由一个或一个以上虚拟线程组成,服务器处理器根据各计算节点的配置信息分别为每个计算节点创建至少一个虚拟线程,每一虚拟线程至少与一计算节点本地运行线程关联。
Description
技术领域
本发明涉及计算软件技术领域,特别是具有利用虚拟线程来间接管理网络计算资源的线程池模型。
背景技术
应用服务器通常的实现方法是:主线程在TCP的一个公开端口监听客户端的连接请求,一旦有客户端请求到达,就建立连接,随即创建一个服务子线程来为这个连接服务:主线程返回继续监听,服务子线程处理完客户端请求退出。每次线程的创建和关闭都将极大地占用系统资源。线程池,就是应用进程在启动或运行过程中创建一定数量的线程并存储到一个“池子”中,当客户请求到达时,不是为之创建一个新的服务子线程,而是从已存在的线程池中选一个空闲的线程为新的客户请求服务,服务完成后。子线程再回到空闲线程池中。
常用的线程池模型是:服务器主线程在启动时创建一定数目的线程放入线程池中,当客户请求到来后在线程池中搜索一个空闲的线程,如果存在空闲的线程,则将客户端请求交给它处理,处理完毕后,服务子线程自动挂起以等待主线程的下一次唤醒;如果此时已没有空闲的线程,这说明当前客户请求的数目超过了线程池的大小,此时就丢弃客户的请求。常用的线程池模型已经不能满足云计算、分布式处理、网格计算等技术的发展,同时也不能充分发挥多核处理器的优势。
本申请人的同一天申请的发明专利《一种网络计算资源的管理系统及方法》公开了一种通过虚拟线程来调用和管理网络计算节点的计算资源的方案。为了更好的对线程池进一步完善,本发明针对虚拟线程和本地线程进行了融合,形成了一种新的线程池模型。
发明内容
本发明的目的提出一种区别于现有线程池的模型,它充分的利用了虚拟线程对网络计算节点的计算资源调用和管理,同时适用于并能充分发挥多核处理器的线程池模型。
本发明的双驱方式的线程池模型与现有线程池模型不同,它具有服务线程部和虚拟线程部。其中,服务线程部内服务线程专门为各种应用程序而创建,并一直处于等待状态;虚拟线程部内的虚拟线程为每个计算节点创建,用于获取计算节点的计算资源,并创建时处于挂起状态;被服务线程部的服务线程唤醒并分配任务后就进入请求处理状态。
随着计算节点的增加或删除,虚拟线程部的大小是动态变化的,而服务线程部大小相对固定,主要取决于应用程序的多少。整个线程池模型的大小将随着虚拟线程部而变化,没有固定大小。
进一步,本发明的双驱方式的线程池模型还设有线程控制器,服务线程生成,为服务线程分配的来自虚拟线程部的虚拟线程及其数量、服务线程部的大小都由线程控制器控制。服务线程部、虚拟线程部分别由独立的处理器或相同处理器不同的核心进行控制和处理。
综上所述,本发明的线程池模具有如下显著特点和进步:
1)、具有服务线程部和虚拟线程部,线程池大小根据虚拟线程部虚拟线程多少而变化,而虚拟线程部大小又根据计算节点数变化而自动调整。
2)、服务线程部一开始就处于等待状态,而虚拟线程部处于挂起状态。服务线程部受线程控制器控制和触发,虚拟线程部线程受服务线程部线程控制。
3)、该线程池模型采用虚拟线程对各分布于网络的计算节点资源进行调用,并可结合多核处理器进行独立核心分开处理。
附图说明
图1是线程池模型的结构框图。
具体实施方式
参考图1,本发明的双驱方式的线程池模型与现有的线程池模型不同,它具有服务线程部、虚拟线程部和线程控制器组成。其中服务线程部,由一个或一个以上的服务线程组成,每一种注册的应用程序向服务器首次请求服务时,服务器为每一种不同的服务应用建立至少一个服务线程;虚拟线程部,由一个或一个以上虚拟线程组成,服务器处理器根据各计算节点的配置信息分别为每个计算节点创建至少一个虚拟线程,每一虚拟线程至少与一计算节点本地运行线程关联。线程控制器用于控制服务线程部的服务线程生成,控制为服务线程分配的来自虚拟线程部的虚拟线程及其数量。线程控制器监听来自本地或网络应用程序的连接请求,检索线程池的服务线程部是否存在与该应用程序对应的服务线程,存在则调用该服务线程,否则创建一服务线程。
服务线程部的服务线程创建后一直等待状态;当检测到存在于该线程相关的应用程序获取服务的请求,服务线程运行。并根据线程控制器分配给它的虚拟线程列表分别唤醒虚拟线程部的虚拟线程,完成分布式计算。虚拟线程部的虚拟线程创建时处于挂起状态;被服务线程部的服务线程唤醒并分配任务后就进入请求处理状态。
实际应用时,线程控制器、服务线程部、虚拟线程部可以分别由服务器内的独立的不同的处理器进行控制和处理,也可以采用相同处理器不同的核心进行控制和处理,以获得相互之间的同步并行运作。
本发明的双驱方式的线程池模型服务线程部的大小受线程控制器控制并基本固定,而虚拟线程部根据计算的节点数量动态调节虚拟线程部大小。
线程池的服务线程部、虚拟线程部可以采用链表实现,链表每一项分别记录了一个线程的关键参数。如:
使用本发明的线程池模型服务器只有数量很少的服务线程处于等待状态,而大部分虚拟线程是根据服务需要而唤醒,同时通过虚拟线程来获取计算节点的资源,保证了服务器的处理能力,同时方便了对计算节点的计算资源管理和调用。
Claims (7)
1.一种双驱方式的线程池模型,其特征在于:所述线程池模型包括服务线程部和虚拟线程部;其中
服务线程部,由一个或一个以上的服务线程组成,每一种注册的应用程序向服务器首次请求服务时,服务器为每一种不同的服务应用建立至少一个服务线程;
虚拟线程部,由一个或一个以上虚拟线程组成,服务器处理器根据各计算节点的配置信息分别为每个计算节点创建至少一个虚拟线程,每一虚拟线程至少与一计算节点本地运行线程关联。
2.如权利要求1所述的双驱方式的线程池模型,其特征在于,服务线程部的服务线程一直等待状态;虚拟线程部的虚拟线程创建时处于挂起状态;被服务线程部的服务线程唤醒并分配任务后就进入请求处理状态。
3.如权利要求2所述的双驱方式的线程池模型,其特征在于,还包括线程控制器,线程控制器用于控制服务线程部的服务线程生成,控制为服务线程分配的来自虚拟线程部的虚拟线程及其数量。
4.如权利要求3所述的双驱方式的线程池模型,其特征在于,虚拟线程部根据计算的节点数量动态调节虚拟线程部大小。
5.如权利要求3所述的双驱方式的线程池模型,其特征在于,服务线程部的大小受线程控制器控制。
6.如权利要求4或5任一所述的双驱方式的线程池模型,其特征在于,线程控制器监听来自本地或网络应用程序的连接请求,检索线程池的服务线程部是否存在与该应用程序对应的服务线程,存在则调用该服务线程,否则创建一服务线程。
7.如权利要求6所述的双驱方式的线程池模型,其特征在于,服务线程部、虚拟线程部分别由独立的处理器或相同处理器不同的核心进行控制和处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100291224A CN102662732A (zh) | 2012-02-07 | 2012-02-07 | 一种双驱方式的线程池模型 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100291224A CN102662732A (zh) | 2012-02-07 | 2012-02-07 | 一种双驱方式的线程池模型 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102662732A true CN102662732A (zh) | 2012-09-12 |
Family
ID=46772231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100291224A Pending CN102662732A (zh) | 2012-02-07 | 2012-02-07 | 一种双驱方式的线程池模型 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102662732A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547566A (zh) * | 2016-11-24 | 2017-03-29 | 恒生电子股份有限公司 | 通讯服务进程池管理方法及系统 |
CN107688943A (zh) * | 2016-08-04 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及系统 |
CN109660569A (zh) * | 2017-10-10 | 2019-04-19 | 武汉斗鱼网络科技有限公司 | 一种多任务并发执行方法、存储介质、设备及系统 |
CN113794650A (zh) * | 2021-09-16 | 2021-12-14 | 平安国际智慧城市科技股份有限公司 | 并发请求的处理方法、计算机设备和计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777008A (zh) * | 2009-12-31 | 2010-07-14 | 中兴通讯股份有限公司 | 移动终端系统线程池实现方法及装置 |
-
2012
- 2012-02-07 CN CN2012100291224A patent/CN102662732A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777008A (zh) * | 2009-12-31 | 2010-07-14 | 中兴通讯股份有限公司 | 移动终端系统线程池实现方法及装置 |
Non-Patent Citations (1)
Title |
---|
杨开杰等: "线程池的多线程并发控制技术研究", 《计算机应用与软件》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688943A (zh) * | 2016-08-04 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及系统 |
CN107688943B (zh) * | 2016-08-04 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及系统 |
CN106547566A (zh) * | 2016-11-24 | 2017-03-29 | 恒生电子股份有限公司 | 通讯服务进程池管理方法及系统 |
CN109660569A (zh) * | 2017-10-10 | 2019-04-19 | 武汉斗鱼网络科技有限公司 | 一种多任务并发执行方法、存储介质、设备及系统 |
CN109660569B (zh) * | 2017-10-10 | 2021-10-15 | 武汉斗鱼网络科技有限公司 | 一种多任务并发执行方法、存储介质、设备及系统 |
CN113794650A (zh) * | 2021-09-16 | 2021-12-14 | 平安国际智慧城市科技股份有限公司 | 并发请求的处理方法、计算机设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105119952B (zh) | 云平台下自动弹性地分配资源的方法和系统 | |
WO2015139374A1 (zh) | 一种云计算平台下的虚拟机分布式任务调度方法 | |
CN110134495B (zh) | 一种容器跨主机在线迁移方法、存储介质及终端设备 | |
US8959228B2 (en) | Optimization of resource utilization in a collection of devices | |
CN103067425B (zh) | 虚拟机创建方法、虚拟机管理系统及相关设备 | |
CN107025139A (zh) | 一种基于云计算的高性能计算调度框架 | |
CN102750132B (zh) | 多线程虚拟流水线处理器的线程控制和调用方法及其处理器 | |
CN106980546A (zh) | 一种任务异步执行方法、装置及系统 | |
CN102662750A (zh) | 基于弹性虚拟机池的虚拟机资源优化控制方法及其系统 | |
Fan et al. | Agent-based service migration framework in hybrid cloud | |
CN104572307A (zh) | 一种对虚拟资源进行弹性调度的方法 | |
CN107659609B (zh) | 一种基于云计算的深度学习支撑平台及深度学习训练方法 | |
CN103685309A (zh) | 面向地图可视化瓦片服务接入的异步请求队列模型 | |
CN107491346A (zh) | 一种应用的任务处理方法、装置及系统 | |
CN102662732A (zh) | 一种双驱方式的线程池模型 | |
JP2015512091A5 (zh) | ||
CN103064657A (zh) | 单个处理器上实现多应用并行处理的方法及装置 | |
CN103716372A (zh) | 一种数字图书馆即服务的云计算平台构建方法 | |
CN105975049B (zh) | 一种任务同步偶发任务低能耗调度方法 | |
WO2022141727A1 (zh) | 一种基于云上成本的资源部署系统及方法 | |
CN105302641B (zh) | 虚拟化集群中进行节点调度的方法及装置 | |
CN108298397A (zh) | 一种基于电梯物联网的电梯维保监测方法及监管平台 | |
KR101276340B1 (ko) | 병렬 처리 시스템 및 그 방법 | |
CN107003713A (zh) | 用于电力管理的逻辑分区环境的事件驱动重新优化 | |
CN106020931A (zh) | 一种基于Heat的云应用部署方案 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120912 |