CN1740974A - 一种线程调度管理方法和系统 - Google Patents
一种线程调度管理方法和系统 Download PDFInfo
- Publication number
- CN1740974A CN1740974A CN 200510021698 CN200510021698A CN1740974A CN 1740974 A CN1740974 A CN 1740974A CN 200510021698 CN200510021698 CN 200510021698 CN 200510021698 A CN200510021698 A CN 200510021698A CN 1740974 A CN1740974 A CN 1740974A
- Authority
- CN
- China
- Prior art keywords
- thread
- module
- management module
- queue
- messages
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种涉及电通信技术的线程调度管理方法和系统,包括如下步骤:A、外部程序的线程消息调用线程管理模块,B、线程管理模块通过队列管理模块将线程消息加入到消息队列中,C、队列管理模块向线程池申请空闲线程,D、工作线程模块加载线程消息,E、工作线程模块执行线程消息;步骤A中,线程管理模块被调用时,线程管理模块首先进行初始化工作;步骤A中,初始化工作至少包含初始化消息队列和线程池的初始大小;步骤C中,队列管理模块通过监视消息队列状态,为新加入的线程消息申请空闲线程,本发明为网络通讯应用系统的多线程处理提供了一种高效、使用方便、移植性高、通用性强的方法。
Description
技术领域
本发明涉及电通信技术,尤其涉及一种线程调度管理方法和系统。
背景技术
目前,各种网络通讯应用系统一般都由多个模块组成,随着面向对象设计和方法的推广和应用,模块之间的耦合性逐步降低,模块之间基于消息的通讯就显得非常重要,应用较为广泛。
网络通讯应用系统在处理多个线程消息(任务)时一般都使用多线程来进行处理,但是,在实际的应用中,上层应用程序需要知道底层对象的实现方法,并通过线程同步的技术来实现对多线程的调度和管理,由于底层对象的实现方法众多,这种面向对象的具体设计和方法缺乏通用性,通用性的缺失便意谓着背离了面向对象的设计思路,对于多线程的调度和管理缺乏有效合理的方法,也给应用系统的调试和维护带来了很多问题和未知因素。
发明内容
本发明的目的在于提供一种高效、使用方便的线程调度管理方法和系统,以克服现有技术中对于多线程的调度和管理缺乏有效合理方法的不足。
本发明所采用的线程调度管理方法包括如下步骤:
A、外部程序的线程消息调用线程管理模块;
B、线程管理模块通过队列管理模块将线程消息加入到消息队列中;
C、队列管理模块向线程池申请空闲线程;
D、工作线程模块加载所述线程消息;
E、工作线程模块执行该线程消息。
所述的步骤A中,线程管理模块被调用时,线程管理模块首先进行初始化工作;
所述的步骤A中,所述的初始化工作至少包含初始化消息队列和线程池的初始大小;
所述的步骤A中,线程管理模块被调用的同时,外部程序进行外部线程切换,外部线程返回处理外部程序的后续消息;
所述的步骤C中,队列管理模块通过监视消息队列状态,为新加入的线程消息申请空闲线程;
所述的步骤D中,工作线程模块从消息队列中加载线程消息。
这种线程调度管理系统,其特征在于:至少包括线程管理模块、队列管理模块和工作线程模块,一个用于放置、加入线程消息的消息队列,和一个用于工作线程模块准备的线程池,其中:所述的线程管理模块为外部调用的入口,向队列管理模块发出相应控制指令,所述的队列管理模块和工作线程模块根据控制指令进行相应处理;
所述的线程管理模块接收外部的调用命令,并向队列管理模块发出控制指令,在消息队列中加入线程消息;
所述的队列管理模块监视消息队列状态,接收线程管理模块的控制指令,向线程池发送申请空闲线程指令,并向工作线程模块发送加载、执行命令;
所述的工作线程模块接收队列管理模块的指令,从所述消息队列中向工作线程模块加载线程消息,并执行线程消息。
本发明的有益效果为:在本发明中,采用面向对象设计技术,使用非常方便,利用线程管理模块作为外部调用的唯一入口,采用队列管理模块和工作线程模块的处理,对线程消息进行加载、执行,对于外部应用程序来说,在多线程的调度管理中,相当于提供了通用的面对对象的入口,因此,本发明效率高、使用方便,在本发明的实际应用中,可采用高移植性、通用性的程序语言封包,在应用系统中可以很容易通过包含这种编译过的程序包使用本发明的控制方法和流程,总之,本发明为网络通讯应用系统的多线程处理提供了一种高效、使用方便、移植性高、通用性强的方法。
附图说明
图1为本发明系统结构示意图;
图2为本发明基本控制流程示意图;
图2为本发明应用例控制流程示意图。
具体实施方式
下面根据附图和实施例对本发明作进一步详细说明:
根据图1,本发明包括线程管理模块a、队列管理模块b和多个工作线程模块,如图1所示,可以有N个工作线程模块,即工作线程模块1、工作线程模块2、…、工作线程模块N,本发明还具有一个用于放置、加入线程消息的消息队列d,和一个用于工作线程模块准备的线程池e,其中,线程管理模块a为外部调用的入口,向队列管理模块b发出相应控制指令,队列管理模块b和工作线程模块根据控制指令进行相应处理。
如图1所示,线程管理模块a接收外部的调用命令,并向队列管理模块b发出控制指令,在消息队列中加入线程消息;队列管理模块b监视消息队列状态,接收线程管理模块a的控制指令,向线程池e发送申请空闲线程指令,并向工作线程模块发送加载、执行命令;工作线程模块接收队列管理模块b的指令,向线程池e加载,执行线程消息。
如图2所示,本发明的基本控制流程如下:
1.外部程序的线程消息调用线程管理模块a。
2.线程管理模块a向队列管理模块b发送调用命令,队列管理模块b将线程消息加入到消息队列d中。
3.队列管理模块b向线程池e中申请空闲线程。
4.申请到了空闲线程后,队列管理模块b向工作线程模块发送加载、执行命令。
5.工作线程模块从消息队列d中加载线程消息。
6.工作线程模块执行线程消息。
下面,如图3所示,再以一具体应用例反映本发明的具体控制流程,例如对于一个外部线程执行网络数据采集NetworkDataSampler的任务,其具体控制流程如下:
1)外部程序的线程消息调用线程管理模块a。
2)线程管理模块a进行初始化工作,初始化工作包含初始化消息队列、线程池的初始大小、以及对队列管理模块b进行初始化;同时,由于外部线程需要执行网络数据采集NetworkDataSampler任务,但该任务是个花费时间的过程,外部线程又不能等待该任务执行完成才返回,因此,外部线程就可以立即返回了。
3)初始化结束后,启动线程管理模块a。
4)线程管理模块a向队列管理模块b发送调用命令,队列管理模块b将线程消息加入到消息队列d中。
5)队列管理模块b监视消息队列d的状态,监视到有新的线程消息加入后,队列管理模块b向线程池e申请空闲线程。
6)若不存在空闲线程,则返回;直到存在空闲线程后,如图1所示,存在一空闲线程,队列管理模块b向相应的工作线程模块发送加载、执行命令,继续如下步骤7)。
7)该工作线程模块从消息队列d中加载所述的线程消息。
8)该工作线程模块执行该线程消息,即,完成网络数据采集NetworkDataSampler任务。
Claims (10)
1.一种线程调度管理方法,其特征在于:它包括如下步骤:
A、外部程序的线程消息调用线程管理模块;
B、线程管理模块通过队列管理模块将线程消息加入到消息队列中;
C、队列管理模块向线程池申请空闲线程;
D、工作线程模块加载所述线程消息;
E、工作线程模块执行该线程消息。
2.根据权利要求1所述的线程调度管理方法,其特征在于:所述的步骤A中,线程管理模块被调用时,线程管理模块首先进行初始化工作。
3.根据权利要求2所述的线程调度管理方法,其特征在于:所述的步骤A中,所述的初始化工作至少包含初始化消息队列和线程池的初始大小。
4.根据权利要求1所述的线程调度管理方法,其特征在于:所述的步骤A中,线程管理模块被调用的同时,外部程序进行外部线程切换,外部线程返回处理外部程序的后续消息。
5.根据权利要求1所述的线程调度管理方法,其特征在于:所述的步骤C中,队列管理模块通过监视消息队列状态,为新加入的线程消息申请空闲线程。
6.根据权利要求1所述的线程调度管理方法,其特征在于:所述的步骤D中,工作线程模块从消息队列中加载线程消息。
7.一种线程调度管理系统,其特征在于:至少包括线程管理模块(a)、队列管理模块(b)和工作线程模块,一个用于放置、加入线程消息的消息队列(d),和一个用于工作线程模块准备的线程池(e),其中:所述的线程管理模块(a)为外部调用的入口,向队列管理模块(b)发出相应控制指令,所述的队列管理模块(b)和工作线程模块根据控制指令进行相应处理。
8.根据权利要求7所述的线程调度管理系统,其特征在于:所述的线程管理模块(a)接收外部的调用命令,并向队列管理模块(b)发出控制指令,在消息队列(d)中加入线程消息。
9.根据权利要求7所述的线程调度管理系统,其特征在于:所述的队列管理模块(b)监视消息队列状态,接收线程管理模块(a)的控制指令,向线程池(e)发送申请空闲线程指令,并向工作线程模块发送加载、执行命令。
10.根据权利要求7所述的线程调度管理系统,其特征在于:所述的工作线程模块接收队列管理模块(b)的指令,从所述消息队列(d)中向工作线程模块加载线程消息,并执行线程消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510021698 CN1740974A (zh) | 2005-09-14 | 2005-09-14 | 一种线程调度管理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510021698 CN1740974A (zh) | 2005-09-14 | 2005-09-14 | 一种线程调度管理方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1740974A true CN1740974A (zh) | 2006-03-01 |
Family
ID=36093376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200510021698 Pending CN1740974A (zh) | 2005-09-14 | 2005-09-14 | 一种线程调度管理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1740974A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100430898C (zh) * | 2006-12-20 | 2008-11-05 | 金魁 | 一种多线程管理的应用系统 |
CN102025649A (zh) * | 2010-06-04 | 2011-04-20 | 西本新干线股份有限公司 | 企业服务总线的消息处理方法 |
CN102025650A (zh) * | 2010-06-04 | 2011-04-20 | 西本新干线股份有限公司 | 企业服务总线的消息处理系统和消息处理方法 |
CN102025653A (zh) * | 2010-06-04 | 2011-04-20 | 西本新干线股份有限公司 | 企业服务总线及企业服务总线的消息处理方法 |
CN102609316A (zh) * | 2012-02-07 | 2012-07-25 | 中山爱科数字科技股份有限公司 | 一种网络计算资源的管理系统及方法 |
CN103164267A (zh) * | 2013-03-29 | 2013-06-19 | 汉柏科技有限公司 | 无锁消息队列实现方法 |
US8805938B2 (en) | 2010-06-04 | 2014-08-12 | Xiben New Line Stock Co., Ltd. | Enterprise service bus and message processing method thereof |
CN103984598A (zh) * | 2013-02-07 | 2014-08-13 | 宏达国际电子股份有限公司 | 用于线程调度的方法以及系统 |
CN106030456A (zh) * | 2013-10-18 | 2016-10-12 | 动力应用程序公司 | 自动异步切换标识 |
CN107153580A (zh) * | 2016-03-04 | 2017-09-12 | 北京忆恒创源科技有限公司 | 获取队列精确状态的装置及其方法 |
CN112685100A (zh) * | 2020-12-31 | 2021-04-20 | 深圳市大富网络技术有限公司 | 一种线程启动方法、系统及装置 |
-
2005
- 2005-09-14 CN CN 200510021698 patent/CN1740974A/zh active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100430898C (zh) * | 2006-12-20 | 2008-11-05 | 金魁 | 一种多线程管理的应用系统 |
CN102025649A (zh) * | 2010-06-04 | 2011-04-20 | 西本新干线股份有限公司 | 企业服务总线的消息处理方法 |
CN102025650A (zh) * | 2010-06-04 | 2011-04-20 | 西本新干线股份有限公司 | 企业服务总线的消息处理系统和消息处理方法 |
CN102025653A (zh) * | 2010-06-04 | 2011-04-20 | 西本新干线股份有限公司 | 企业服务总线及企业服务总线的消息处理方法 |
CN102025653B (zh) * | 2010-06-04 | 2014-01-08 | 西本新干线电子商务有限公司 | 企业服务总线及企业服务总线的消息处理方法 |
US8805938B2 (en) | 2010-06-04 | 2014-08-12 | Xiben New Line Stock Co., Ltd. | Enterprise service bus and message processing method thereof |
CN102609316A (zh) * | 2012-02-07 | 2012-07-25 | 中山爱科数字科技股份有限公司 | 一种网络计算资源的管理系统及方法 |
CN102609316B (zh) * | 2012-02-07 | 2014-08-27 | 中山爱科数字科技股份有限公司 | 一种网络计算资源的管理系统及方法 |
CN103984598A (zh) * | 2013-02-07 | 2014-08-13 | 宏达国际电子股份有限公司 | 用于线程调度的方法以及系统 |
CN103984598B (zh) * | 2013-02-07 | 2017-09-29 | 宏达国际电子股份有限公司 | 用于线程调度的方法以及系统 |
CN103164267A (zh) * | 2013-03-29 | 2013-06-19 | 汉柏科技有限公司 | 无锁消息队列实现方法 |
CN106030456A (zh) * | 2013-10-18 | 2016-10-12 | 动力应用程序公司 | 自动异步切换标识 |
CN106030456B (zh) * | 2013-10-18 | 2019-04-30 | 思科技术公司 | 自动异步切换标识 |
US10298469B2 (en) | 2013-10-18 | 2019-05-21 | Cisco Technology, Inc. | Automatic asynchronous handoff identification |
CN107153580A (zh) * | 2016-03-04 | 2017-09-12 | 北京忆恒创源科技有限公司 | 获取队列精确状态的装置及其方法 |
CN107153580B (zh) * | 2016-03-04 | 2020-08-18 | 北京忆恒创源科技有限公司 | 获取队列精确状态的装置及其方法 |
CN112685100A (zh) * | 2020-12-31 | 2021-04-20 | 深圳市大富网络技术有限公司 | 一种线程启动方法、系统及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1740974A (zh) | 一种线程调度管理方法和系统 | |
CN1185582C (zh) | 调度无用单元收集的方法 | |
CN1794185A (zh) | 一种多线程处理中的资源调用方法 | |
CN1266590C (zh) | 面向构件基于系统内核的进程池/线程池管理方法 | |
CN103473129B (zh) | 线程数目可伸缩的多任务队列调度系统及其实现方法 | |
CN102455933B (zh) | 一种通过线程管理提高多任务处理效率的方法 | |
CN103744723A (zh) | 一种线程池的管理方法和管理系统 | |
CN101069158A (zh) | 适用于控制具有不同关键程度的中断请求的执行的中断控制功能 | |
CN1632771A (zh) | 直接存储访问控制装置和图像处理系统以及传输方法 | |
CN1825286A (zh) | 嵌入式sram操作系统线程实现和线程状态转换的方法 | |
CN101086711A (zh) | 一种多任务运行系统中的任务管理方法 | |
CN101414270A (zh) | 硬件辅助的辅核任务动态优先级调度的实现方法 | |
CN1556474A (zh) | 软件的在线升级方法及装置 | |
CN104572286A (zh) | 一种基于分布式内存集群的任务调度方法 | |
CN2833881Y (zh) | 全自动上芯机 | |
CN1852131A (zh) | 一种定时器调度方法 | |
CN1740973A (zh) | 一种实时任务管理与调度方法 | |
CN103677959B (zh) | 一种基于组播的虚拟机集群迁移方法及系统 | |
CN103019849B (zh) | 云计算环境下的虚拟机管理方法 | |
CN112052094A (zh) | 一种基于多线程的任务执行方法 | |
CN1519735A (zh) | 嵌入式实时操作系统的进程调度方法 | |
CN1262926C (zh) | 一种基于共享内存的看门狗实现方法 | |
CN101349975B (zh) | 一种在嵌入式操作系统上实现中断底半部机制的方法及装置 | |
CN1318166A (zh) | 软件改写方法及软件改写装置 | |
CN100340976C (zh) | 一种实现计算机多线程控制的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |