一种线程调度管理方法和系统技术方案

技术编号:2855316 阅读:189 留言:0更新日期:2012-04-11 18:40
一种涉及电通信技术的线程调度管理方法和系统,包括如下步骤:A、外部程序的线程消息调用线程管理模块,B、线程管理模块通过队列管理模块将线程消息加入到消息队列中,C、队列管理模块向线程池申请空闲线程,D、工作线程模块加载线程消息,E、工作线程模块执行线程消息;步骤A中,线程管理模块被调用时,线程管理模块首先进行初始化工作;步骤A中,初始化工作至少包含初始化消息队列和线程池的初始大小;步骤C中,队列管理模块通过监视消息队列状态,为新加入的线程消息申请空闲线程,本发明专利技术为网络通讯应用系统的多线程处理提供了一种高效、使用方便、移植性高、通用性强的方法。

【技术实现步骤摘要】

本专利技术涉及电通信技术,尤其涉及一种线程调度管理方法和系统
技术介绍
目前,各种网络通讯应用系统一般都由多个模块组成,随着面向对象设计和方法的推广和应用,模块之间的耦合性逐步降低,模块之间基于消息的通讯就显得非常重要,应用较为广泛。网络通讯应用系统在处理多个线程消息(任务)时一般都使用多线程来进行处理,但是,在实际的应用中,上层应用程序需要知道底层对象的实现方法,并通过线程同步的技术来实现对多线程的调度和管理,由于底层对象的实现方法众多,这种面向对象的具体设计和方法缺乏通用性,通用性的缺失便意谓着背离了面向对象的设计思路,对于多线程的调度和管理缺乏有效合理的方法,也给应用系统的调试和维护带来了很多问题和未知因素。
技术实现思路
本专利技术的目的在于提供一种高效、使用方便的线程调度管理方法和系统,以克服现有技术中对于多线程的调度和管理缺乏有效合理方法的不足。本专利技术所采用的线程调度管理方法包括如下步骤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任务。本文档来自技高网...

【技术保护点】
一种线程调度管理方法,其特征在于:它包括如下步骤:A、外部程序的线程消息调用线程管理模块;B、线程管理模块通过队列管理模块将线程消息加入到消息队列中;C、队列管理模块向线程池申请空闲线程;D、工作线程模块加载 所述线程消息;E、工作线程模块执行该线程消息。

【技术特征摘要】
1.一种线程调度管理方法,其特征在于它包括如下步骤A、外部程序的线程消息调用线程管理模块;B、线程管理模块通过队列管理模块将线程消息加入到消息队列中;C、队列管理模块向线程池申请空闲线程;D、工作线程模块加载所述线程消息;E、工作线程模块执行该线程消息。2.根据权利要求1所述的线程调度管理方法,其特征在于所述的步骤A中,线程管理模块被调用时,线程管理模块首先进行初始化工作。3.根据权利要求2所述的线程调度管理方法,其特征在于所述的步骤A中,所述的初始化工作至少包含初始化消息队列和线程池的初始大小。4.根据权利要求1所述的线程调度管理方法,其特征在于所述的步骤A中,线程管理模块被调用的同时,外部程序进行外部线程切换,外部线程返回处理外部程序的后续消息。5.根据权利要求1所述的线程调度管理方法,其特征在于所述的步骤C中,队列管理模块通过监视消息队列状态,为新加入的线程消息申请空闲线程。6.根据权利要求1所述的线程调度管理方法,其特征在于所述的步骤D中,工作线程模块从消息队...

【专利技术属性】
技术研发人员:郑春华
申请(专利权)人:艾默生网络能源有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1