一种线程管理方法及装置

阅读: 评论:0

著录项
  • CN201610826660.4
  • 20160914
  • CN106383749A
  • 20170208
  • 郑州云海信息技术有限公司
  • 王洋
  • G06F9/50
  • G06F9/50

  • 河南省郑州市郑东新区心怡路278号16层1601室
  • 河南(41)
  • 北京集佳知识产权代理有限公司
  • 罗满
摘要
本发明公开了一种线程管理方法及装置,其中该方法包括:接收应用发起的线程申请信息,并由线程池中获取与所述线程申请信息对应的目标轮询线程及目标IO线程;执行所述目标轮询线程中对所述目标IO线程进行启动初始化的部分;执行所述目标IO线程以及所述目标轮询线程中对所述目标IO线程的执行过程进行状态维护的部分。本申请公开的上述技术方案中,目标轮询线程主要负责线程状态维护及线程启动初始化等,而IO线程主要负责读写IO的下发等,可见,目标轮询线程对应控制数据,而IO线程对应业务数据,从而通过上述两种线程的分别执行实现了控制数据及业务数据的分离,适应了对应产品设计的需求。
权利要求

1.一种线程管理方法,其特征在于,包括:

接收应用发起的线程申请信息,并由线程池中获取与所述线程申请信息对应的目标轮 询线程及目标IO线程;

执行所述目标轮询线程中对所述目标IO线程进行启动初始化的部分;

执行所述目标IO线程以及所述目标轮询线程中对所述目标IO线程的执行过程进行状 态维护的部分。

2.根据权利要求1所述的方法,其特征在于,获取所述目标轮询线程及所述目标IO线程 之后,还包括:

为所述目标轮询线程指定两个回调函数,其中第一回调函数对应所述目标轮询线程中 对所述目标IO线程进行启动初始化的部分,第二回调函数对应所述目标轮询线程中对所述 目标IO线程的执行过程进行状态维护的部分。

3.根据权利要求2所述的方法,其特征在于,还包括:

为所述目标轮询线程设置全局参数;

基于所述全局参数的值确定是否执行完毕所述第一回调函数,如果是,则执行所述目 标IO线程及所述第二回调函数,否则,则执行所述第一回调函数。

4.根据权利要求1所述的方法,其特征在于,还包括:

接收线程池的注册请求信息,建立与所述线程池的连接。

5.根据权利要求4所述的方法,其特征在于,还包括:

在所述目标轮询线程及所述目标IO线程执行完毕后,将所述目标轮询线程及所述目标 IO线程回收至所述线程池。

6.一种线程管理装置,其特征在于,包括:

线程注册模块,用于接收应用发起的线程申请信息;

线程管理模块,用于由线程池中获取与所述线程申请信息对应的目标轮询线程及目标 IO线程;

线程启动模块,用于执行所述目标轮询线程中对所述目标IO线程进行启动初始化的部 分;

线程执行模块,用于执行所述目标IO线程以及所述目标轮询线程中对所述目标IO线程 的执行过程进行状态维护的部分。

7.根据权利要求6所述的装置,其特征在于,所述线程管理模块还包括:

函数设置单元,用于为所述目标轮询线程指定两个回调函数,其中第一回调函数对应 所述目标轮询线程中对所述目标IO线程进行启动初始化的部分,第二回调函数对应所述目 标轮询线程中对所述目标IO线程的执行过程进行状态维护的部分。

8.根据权利要求7所述的装置,其特征在于,还包括:

判决模块,用于为所述目标轮询线程设置全局参数;基于所述全局参数的值确定是否 执行完毕所述第一回调函数,如果是,则指示所述线程执行模块执行所述目标IO线程及所 述第二回调函数,否则,则指示所述线程启动模块执行所述第一回调函数。

9.根据权利要求6所述的装置,其特征在于,所述线程管理模块还包括:

线程池注册单元,用于接收线程池的注册请求信息,建立与所述线程池的连接。

10.根据权利要求9所述的装置,其特征在于,所述线程管理模块还包括:

线程回收单元,用于在所述目标轮询线程及所述目标IO线程执行完毕后,将所述目标 轮询线程及所述目标IO线程回收至所述线程池。

说明书
技术领域

本发明涉及计算机软件技术领域,更具体地说,涉及一种线程管理方法及装置。

在计算机操作中,为了实现对应操作,通常需要通过运行相应的线程来实现。

目前,在运行线程时,通常该线程中同时包括业务数据及控制数据对应的操作,如 在同一线程中同时包括IO线程及用于对该IO线程执行过程中进行状态维护的轮询线程等。 但是,随着计算机产品的增多,有些产品设需求要求业务数据及控制数据分离,而现有技术 中提供的上述技术方案无法实现这一目的。

综上所述,如何提供一种使得线程中业务数据与控制数据分离的技术方案,是目 前本领域技术人员亟待解决的问题。

本发明的目的是提供一种线程管理方法及装置,以使得线程中业务数据与控制数 据分离。

一种线程管理方法,包括:

接收应用发起的线程申请信息,并由线程池中获取与所述线程申请信息对应的目 标轮询线程及目标IO线程;

执行所述目标轮询线程中对所述目标IO线程进行启动初始化的部分;

执行所述目标IO线程以及所述目标轮询线程中对所述目标IO线程的执行过程进 行状态维护的部分。

优选的,获取所述目标轮询线程及所述目标IO线程之后,还包括:

为所述目标轮询线程指定两个回调函数,其中第一回调函数对应所述目标轮询线 程中对所述目标IO线程进行启动初始化的部分,第二回调函数对应所述目标轮询线程中对 所述目标IO线程的执行过程进行状态维护的部分。

优选的,还包括:

为所述目标轮询线程设置全局参数;

基于所述全局参数的值确定是否执行完毕所述第一回调函数,如果是,则执行所 述目标IO线程及所述第二回调函数,否则,则执行所述第一回调函数。

优选的,还包括:

接收线程池的注册请求信息,建立与所述线程池的连接。

优选的,还包括:

在所述目标轮询线程及所述目标IO线程执行完毕后,将所述目标轮询线程及所述 目标IO线程回收至所述线程池。

一种线程管理装置,包括:

线程注册模块,用于接收应用发起的线程申请信息;

线程管理模块,用于由线程池中获取与所述线程申请信息对应的目标轮询线程及 目标IO线程;

线程启动模块,用于执行所述目标轮询线程中对所述目标IO线程进行启动初始化 的部分;

线程执行模块,用于执行所述目标IO线程以及所述目标轮询线程中对所述目标IO 线程的执行过程进行状态维护的部分。

优选的,所述线程管理模块还包括:

函数设置单元,用于为所述目标轮询线程指定两个回调函数,其中第一回调函数 对应所述目标轮询线程中对所述目标IO线程进行启动初始化的部分,第二回调函数对应所 述目标轮询线程中对所述目标IO线程的执行过程进行状态维护的部分。

优选的,还包括:

判决模块,用于为所述目标轮询线程设置全局参数;基于所述全局参数的值确定 是否执行完毕所述第一回调函数,如果是,则指示所述线程执行模块执行所述目标IO线程 及所述第二回调函数,否则,则指示所述线程启动模块执行所述第一回调函数。

优选的,所述线程管理模块还包括:

线程池注册单元,用于接收线程池的注册请求信息,建立与所述线程池的连接。

优选的,所述线程管理模块还包括:

线程回收单元,用于在所述目标轮询线程及所述目标IO线程执行完毕后,将所述 目标轮询线程及所述目标IO线程回收至所述线程池。

本发明提供了一种线程管理方法及装置,其中该方法包括:接收应用发起的线程 申请信息,并由线程池中获取与所述线程申请信息对应的目标轮询线程及目标IO线程;执 行所述目标轮询线程中对所述目标IO线程进行启动初始化的部分;执行所述目标IO线程以 及所述目标轮询线程中对所述目标IO线程的执行过程进行状态维护的部分。本申请公开的 上述技术方案中,目标轮询线程主要负责线程状态维护及线程启动初始化等,而IO线程主 要负责读写IO的下发等,可见,目标轮询线程对应控制数据,而IO线程对应业务数据,从而 通过上述两种线程的分别执行实现了控制数据及业务数据的分离,适应了对应产品设计的 需求。另外,本申请公开的上述技术方案中,先执行目标轮询线程中对所述目标IO线程进行 启动初始化的部分,再执行所述目标IO线程以及所述目标轮询线程中对所述目标IO线程的 执行过程进行状态维护的部分,从而保证了隶属于同一线程池中不同业务线程有序执行, 很好的实现了对于多线程的管理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。

图1为本发明实施例提供的一种线程管理方法的流程图;

图2为本发明实施例提供的一种线程管理装置的结构示意图。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。

请参阅图1,其示出了本发明实施例提供的一种线程管理方法的流程图,其特征在 于,包括:

S11:接收应用发起的线程申请信息,并由线程池中获取与线程申请信息对应的目 标轮询线程及目标IO线程。

其中,应用可以指任一发起线程申请信息的应用,该线程申请信息中包含有所需 要获取的线程的信息,可以包括线程对应的操作及数据等;进而由线程池中获取与该线程 的信息对应的目标轮询线程及目标IO线程。

S12:执行目标轮询线程中对目标IO线程进行启动初始化的部分。

其中,执行目标轮询线程中对应部分以对目标IO线程进行启动初始化,可以理解 为通过该部分的执行为目标IO线程的启动进行准备工作,可以包括搭建目标IO线程执行过 程中所需要使用的通信链路等,当然还可以根据实际需要进行其他操作,均在本发明的保 护范围之内。

S13:执行目标IO线程以及目标轮询线程中对目标IO线程的执行过程进行状态维 护的部分。

执行完毕目标轮询线程中对目标IO线程进行启动初始化的部分,说明启动目标IO 线程的准备工作已经完成,此时可以执行目标IO线程以及目标轮询线程中对目标IO线程的 执行过程进行状态维护的部分。其中,执行目标轮询线程中对应部分以对目标IO线程的执 行过程进行状态维护,可以包括对目标IO线程执行过程中所需要使用的通信链路进行实时 监控和维护等,以保证该通信链路能够正常通信,进而保证目标IO线程的正常运行。当然, 还可以根据实际需要进行其他设定,均在本发明的保护范围之内。

本申请公开的上述技术方案中,目标轮询线程主要负责线程状态维护及线程启动 初始化等,而IO线程主要负责读写IO的下发等,可见,目标轮询线程对应控制数据,而IO线 程对应业务数据,从而通过上述两种线程的分别执行实现了控制数据及业务数据的分离, 适应了对应产品设计的需求。另外,本申请公开的上述技术方案中,先执行目标轮询线程中 对目标IO线程进行启动初始化的部分,再执行目标IO线程以及目标轮询线程中对目标IO线 程的执行过程进行状态维护的部分,从而保证了隶属于同一线程池中不同业务线程有序执 行,很好的实现了对于多线程的管理。

另外,通过本申请公开的上述技术方案简单易用的同时,实现了基于线程池的多 线程模式下线程与业务绑定、线程之间保持同步状态以及对整个业务流程中线程间的角 划分,使得业务流程更加清晰,更使得线程代码清晰简洁、运行高效,而且易于扩展。

本发明实施例提供的一种线程管理方法,获取目标轮询线程及目标IO线程之后, 还可以包括:

为目标轮询线程指定两个回调函数,其中第一回调函数对应目标轮询线程中对目 标IO线程进行启动初始化的部分,第二回调函数对应目标轮询线程中对目标IO线程的执行 过程进行状态维护的部分。

需要说明的是,目标轮询线程与目标IO线程的区别包括,目标轮询线程主要包括 两两部分,一部分用于对目标IO线程进行启动初始化,而另一部分用于对目标IO线程的执 行过程进行状态维护,而这两部分可以通过对应的回调函数实现;具体来说,可以在获取到 上述两种线程之后,即为目标轮询线程设置两个回调函数,一个回调函数对应目标轮询线 程中对目标IO线程进行启动初始化的部分,另一个回调函数对应目标轮询线程中对目标IO 线程的执行过程进行状态维护的部分,从而通过回调函数简单高效的实现线程设计。

本发明实施例提供的一种线程管理方法,还可以包括:

为目标轮询线程设置全局参数;

基于全局参数的值确定是否执行完毕第一回调函数,如果是,则执行目标IO线程 及第二回调函数,否则,则执行第一回调函数。

其中,全局参数对于目标轮询线程及目标IO线程均可见,其主要对应于第一回调 函数的执行。具体来说,第一回调函数执行完毕之前及执行完毕之后对应全局参数的值并 不相同,具体可以根据实际需要对该值进行设定,因此,基于全局参数的值即可获知当前第 一回调函数是否执行完毕,进而判断是执行第一回调函数还是执行目标IO函数及第二回调 函数。如果全局参数的值对应第一回调函数未执行完毕,即使第二回调函数及目标IO函数 已经占据CPU,也会直接返回直至第一回调函数执行完毕再执行。最终,整个系统便会处于 目标轮询线程和目标IO线程共存的状态,并且可以依据具体接口内部逻辑实现IO数据的发 送放至目标IO线程,IO数据的接收放至目标轮询线程。从而简单高效的保证了不同线程的 有效执行。

本发明实施例提供的一种线程管理方法,还可以包括:

接收线程池的注册请求信息,建立与线程池的连接。

具体来说,线程池在被使用之前,需要发送注册请求信息,该信息可以包括线程池 中包含的各线程相关信息等,以实现注册。而在线程池实现注册后,建立与线程池的连接, 从而在需要获取线程时可以由线程池中直接获取,保证了本发明实施例提供的上述技术方 案的顺利实现。

本发明实施例提供的一种线程管理方法,还可以包括:

在目标轮询线程及目标IO线程执行完毕后,将目标轮询线程及目标IO线程回收至 线程池。

在目标轮询线程及目标IO线程执行完毕后,对这两种线程进行回收,从而实现了 线程的重复利用。

本发明实施例还提供了一种线程管理装置,如图2所示,可以包括:

线程注册模块11,用于接收应用发起的线程申请信息;

线程管理模块12,用于由线程池中获取与线程申请信息对应的目标轮询线程及目 标IO线程;

线程启动模块13,用于执行目标轮询线程中对目标IO线程进行启动初始化的部 分;

线程执行模块14,用于执行目标IO线程以及目标轮询线程中对目标IO线程的执行 过程进行状态维护的部分。

本申请公开的上述技术方案中,线程管理模块实现线程池的注册、线程的回收及 对应设置更新等功能,为多线程模式下线程的申请及维护提供良好接口并提供稳定访问机 制;线程注册模块主要是用于供不同应用申请线程;线程启动模块主要是实现目标轮询线 程优先执行策略,即保障同步性策略;线程执行模块是通用模块,不同类型线程执行同一接 口,只不过不同类型执行分支不同,进而确定了不同线程角。各模块间具备上下层依赖关 系,相互之间具备关联接口,从而相互配合,相互依赖,构成有效闭环系统。

本发明实施例提供的一种线程管理装置,线程管理模块还可以包括:

函数设置单元,用于为目标轮询线程指定两个回调函数,其中第一回调函数对应 目标轮询线程中对目标IO线程进行启动初始化的部分,第二回调函数对应目标轮询线程中 对目标IO线程的执行过程进行状态维护的部分。

本发明实施例提供的一种线程管理装置,还可以包括:

判决模块,用于为目标轮询线程设置全局参数;基于全局参数的值确定是否执行 完毕第一回调函数,如果是,则指示线程执行模块执行目标IO线程及第二回调函数,否则, 则指示线程启动模块执行第一回调函数。

本发明实施例提供的一种线程管理装置,线程管理模块还可以包括:

线程池注册单元,用于接收线程池的注册请求信息,建立与线程池的连接。

本发明实施例提供的一种线程管理装置,线程管理模块还可以包括:

线程回收单元,用于在目标轮询线程及目标IO线程执行完毕后,将目标轮询线程 及目标IO线程回收至线程池。

本发明实施例提供的一种线程管理装置中相关部分的说明请参见本发明实施例 提供的一种线程管理方法中对应部分的说明,在此不再赘述。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这 些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可 以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限 制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的 范围。

本文发布于:2023-04-15 02:30:38,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/86592.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图