一种线程调度管理方法和系统的制作方法

文档序号:6519533阅读:171来源:国知局
专利名称:一种线程调度管理方法和系统的制作方法
技术领域
本发明涉及电通信技术,尤其涉及一种线程调度管理方法和系统。
背景技术
目前,各种网络通讯应用系统一般都由多个模块组成,随着面向对象设计和方法的推广和应用,模块之间的耦合性逐步降低,模块之间基于消息的通讯就显得非常重要,应用较为广泛。
网络通讯应用系统在处理多个线程消息(任务)时一般都使用多线程来进行处理,但是,在实际的应用中,上层应用程序需要知道底层对象的实现方法,并通过线程同步的技术来实现对多线程的调度和管理,由于底层对象的实现方法众多,这种面向对象的具体设计和方法缺乏通用性,通用性的缺失便意谓着背离了面向对象的设计思路,对于多线程的调度和管理缺乏有效合理的方法,也给应用系统的调试和维护带来了很多问题和未知因素。

发明内容
本发明的目的在于提供一种高效、使用方便的线程调度管理方法和系统,以克服现有技术中对于多线程的调度和管理缺乏有效合理方法的不足。
本发明所采用的线程调度管理方法包括如下步骤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任务。
权利要求
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)中向工作线程模块加载线程消息,并执行线程消息。
全文摘要
一种涉及电通信技术的线程调度管理方法和系统,包括如下步骤A、外部程序的线程消息调用线程管理模块,B、线程管理模块通过队列管理模块将线程消息加入到消息队列中,C、队列管理模块向线程池申请空闲线程,D、工作线程模块加载线程消息,E、工作线程模块执行线程消息;步骤A中,线程管理模块被调用时,线程管理模块首先进行初始化工作;步骤A中,初始化工作至少包含初始化消息队列和线程池的初始大小;步骤C中,队列管理模块通过监视消息队列状态,为新加入的线程消息申请空闲线程,本发明为网络通讯应用系统的多线程处理提供了一种高效、使用方便、移植性高、通用性强的方法。
文档编号G06F9/46GK1740974SQ200510021698
公开日2006年3月1日 申请日期2005年9月14日 优先权日2005年9月14日
发明者郑春华 申请人:艾默生网络能源有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1