CN105302557A - 线程建立及处理的方法及装置 - Google Patents

线程建立及处理的方法及装置 Download PDF

Info

Publication number
CN105302557A
CN105302557A CN201510727254.8A CN201510727254A CN105302557A CN 105302557 A CN105302557 A CN 105302557A CN 201510727254 A CN201510727254 A CN 201510727254A CN 105302557 A CN105302557 A CN 105302557A
Authority
CN
China
Prior art keywords
thread
treatment
request
timed task
type
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
Application number
CN201510727254.8A
Other languages
English (en)
Inventor
陈宗志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510727254.8A priority Critical patent/CN105302557A/zh
Publication of CN105302557A publication Critical patent/CN105302557A/zh
Pending legal-status Critical Current

Links

Abstract

本发明提供了一种基于线程模板的线程建立及处理的方案,接收归属于至少一种线程类型的线程建立请求,线程建立请求包含与其所属线程类型相匹配的请求处理参数,随后根据线程建立请求,确定与线程类型相匹配的线程模板,将请求处理参数与相匹配的线程模板相结合,创建与线程建立请求相应的线程并执行相应任务。当线程调用量较大时,通过本方案可避免以统一的方法调用线程造成CPU运行大量重复性工作,从而耗费系统大量的CPU资源的情况,提高了线程的运行效率,同时提高了开发效率,进一步地,提高了软件程序内部代码的内聚性而降低了耦合性,从而提高了程序的整体内部框架结构的质量,且易于软件开发人员对程序的后期维护。

Description

线程建立及处理的方法及装置
技术领域
本发明涉及计算机技术领域,具体而言,本发明涉及一种线程建立及处理的方法及装置。
背景技术
随着计算机技术的不断发展,在软件开发方面各种SDK(SoftwareDevelopmentKit,软件开发工具包)及开发方法也在不断的更新。计算机中每个运行的程序就是一个进程,进程需要创建并运行一个或多个软件线程,线程最终被调度到CPU(CentralProcessingUnit,中央处理器)内核中运行。在现有软件开发技术中,线程的调用方法未考虑线程的类型,均以统一的方法进行调用,随后再根据线程的具体类型进行相应的处理,因此当线程的调用量较大时会造成CPU运行大量重复性工作,并耗费系统大量的CPU资源,从而降低了线程的运行效率,进一步地,现有技术的线程调用方法,使软件程序内部代码内聚性较低而耦合性较高,从而降低了程序的整体内部框架结构的质量,且不易于软件开发人员对程序的后期维护。因此需要一种高效的线程调用方法,使在调用线程的过程中针对线程的类型对线程进行相应的调用,达到避免CPU运行大量重复性工作,提高线程运行效率的目的。
发明内容
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明的实施例提出了一种线程建立及处理的方法,包括:
接收归属于至少一种线程类型的线程建立请求,所述线程建立请求包含与其所属线程类型相匹配的请求处理参数;
根据所述线程建立请求,确定与所述线程类型相匹配的线程模板;
将所述请求处理参数与相匹配的线程模板相结合,创建与所述线程建立请求相应的线程并执行相应任务。
其中,所述线程类型具体包括但不限于:
用于处理定时任务的线程;
用于处理数据包格式的线程;
用于处理建立连接及收发消息的线程。
其中,与用于处理定时任务的线程相匹配的请求处理参数,具体包括:
定时任务的线程执行方法;
定时任务的时间;
优选地,所述线程类型为用于处理定时任务的线程时,将所述请求处理参数与相匹配的线程模板相结合,创建与所述线程建立请求相应的线程并执行相应任务,具体包括:
将所述定时任务的线程执行方法及所述定时任务的时间与所述用于处理定时任务的线程相匹配的线程模板相结合,创建用于处理定时任务的线程并执行相应定时任务。
其中,与用于处理数据包格式的线程相匹配的请求处理参数,具体包括:
处理预定格式的数据包的方法;
对收包格式的定义参数;
对发包格式的定义参数。
优选地,所述线程类型为用于处理数据包格式的线程时,将所述请求处理参数与相匹配的线程模板相结合,创建与所述线程建立请求相应的线程并执行相应任务,具体包括:
将所述处理预定格式的数据包的方法、所述对收包格式的定义参数及所述对发包格式的定义参数与所述用于处理数据包格式的线程相匹配的线程模板相结合,创建用于处理数据包格式的线程并执行相应的格式处理任务。
其中,与用于处理建立连接及收发消息的线程相匹配的请求处理参数,具体包括:
建立连接的监测端口信息;
对传输数据的处理方法。
优选地,所述线程类型为用于处理建立连接及收发消息的线程时,将所述请求处理参数与相匹配的线程模板相结合,创建与所述线程建立请求相应的线程并执行相应任务,具体包括:
将所述建立连接的监测端口信息、所述对传输数据的处理方法与所述用于处理建立连接及收发消息的线程相匹配的线程模板相结合,创建用于处理建立连接及收发消息的线程并执行相应的通信连接任务。
优选地,该方法还包括:
获取与各个线程类型相应的公共资源信息;
基于所述公共资源信息生成与各个线程类型相应的线程模板。
本发明的另一实施例提出了一种线程建立及处理的装置,包括:
接收模块,接收归属于至少一种线程类型的线程建立请求,所述线程建立请求包含与其所属线程类型相匹配的请求处理参数;
确定模块,根据所述线程建立请求,确定与所述线程类型相匹配的线程模板;
创建模块,将所述请求处理参数与相匹配的线程模板相结合,创建与所述线程建立请求相应的线程并执行相应任务。
其中,所述线程类型具体包括但不限于:
用于处理定时任务的线程;
用于处理数据包格式的线程;
用于处理建立连接及收发消息的线程。
其中,与用于处理定时任务的线程相匹配的请求处理参数,具体包括:
定时任务的线程执行方法;
定时任务的时间;
优选地,所述线程类型为用于处理定时任务的线程时,所述创建模块具体用于将所述定时任务的线程执行方法及所述定时任务的时间与所述用于处理定时任务的线程相匹配的线程模板相结合,创建用于处理定时任务的线程并执行相应定时任务。
其中,与用于处理数据包格式的线程相匹配的请求处理参数,具体包括:
处理预定格式的数据包的方法;
对收包格式的定义参数;
对发包格式的定义参数。
优选地,所述线程类型为用于处理数据包格式的线程时,所述创建模块具体用于将所述处理预定格式的数据包的方法、所述对收包格式的定义参数及所述对发包格式的定义参数与所述用于处理数据包格式的线程相匹配的线程模板相结合,创建用于处理数据包格式的线程并执行相应的格式处理任务。
其中,与用于处理建立连接及收发消息的线程相匹配的请求处理参数,具体包括:
建立连接的监测端口信息;
对传输数据的处理方法。
优选地,所述线程类型为用于处理建立连接及收发消息的线程时,所述创建模块具体用于将所述建立连接的监测端口信息、所述对传输数据的处理方法与所述用于处理建立连接及收发消息的线程相匹配的线程模板相结合,创建用于处理建立连接及收发消息的线程并执行相应的通信连接任务。
优选地,该装置还包括:
获取模块,用于获取与各个线程类型相应的公共资源信息;
模板生成模块,基于所述公共资源信息生成与各个线程类型相应的线程模板。
本发明的实施例中,提出了一种基于线程模板的线程建立及处理的方案,通过建立与各个线程类型相应的线程模板并调用相应的线程模板执行相应任务,充分的考虑了线程的类型,当线程的调用量较大时,避免了以统一的方法调用线程造成CPU运行大量重复性工作,从而耗费系统大量的CPU资源的情况,提高了线程的运行效率;同时,对软件开发人员而言,减少了大量重复性开发工作,提高了开发的效率,进一步地,通过本方案的线程调用方法,提高了软件程序内部代码的内聚性而降低了耦合性,从而提高了程序的整体内部框架结构的质量,且易于软件开发人员对程序的后期维护。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明中一个实施例的基于线程模板的线程建立及处理的方法的流程图;
图2为本发明中一个优选实施例的基于线程模板的线程建立及处理的方法的流程图;
图3为本发明中另一实施例的基于线程模板的线程建立及处理的装置的结构示意图;
图4为本发明中另一优选实施例的基于线程模板的线程建立及处理的装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
图1为本发明中一个实施例的基于线程模板的线程建立及处理的方法的流程图。
步骤S110:接收归属于至少一种线程类型的线程建立请求,线程建立请求包含与其所属线程类型相匹配的请求处理参数;步骤S120:根据线程建立请求,确定与线程类型相匹配的线程模板;步骤S130:将请求处理参数与相匹配的线程模板相结合,创建与线程建立请求相应的线程并执行相应任务。
本发明的实施例中,提出了一种基于线程模板的线程建立及处理的方案,通过建立与各个线程类型相应的线程模板并调用相应的线程模板执行相应任务,充分的考虑了线程的类型,当线程的调用量较大时,避免了以统一的方法调用线程造成CPU运行大量重复性工作,从而耗费系统大量的CPU资源的情况,提高了线程的运行效率;同时,对软件开发人员而言,减少了大量重复性开发工作,提高了开发的效率,进一步地,通过本方案的线程调用方法,提高了软件程序内部代码的内聚性而降低了耦合性,从而提高了程序的整体内部框架结构的质量,且易于软件开发人员对程序的后期维护。
步骤S110:接收归属于至少一种线程类型的线程建立请求,线程建立请求包含与其所属线程类型相匹配的请求处理参数。
其中,线程类型具体包括但不限于:
用于处理定时任务的线程;
用于处理数据包格式的线程;
用于处理建立连接及收发消息的线程。
其中,与用于处理定时任务的线程相匹配的请求处理参数,具体包括:
定时任务的线程执行方法;
定时任务的时间。
其中,与用于处理数据包格式的线程相匹配的请求处理参数,具体包括:
处理预定格式的数据包的方法;
对收包格式的定义参数;
对发包格式的定义参数。
其中,与用于处理建立连接及收发消息的线程相匹配的请求处理参数,具体包括:
建立连接的监测端口信息;
对传输数据的处理方法。
例如,服务端接收到一个用于处理定时任务的线程建立请求,该线程建立请求包含与其所属用于处理定时任务的线程类型相匹配的请求处理参数,包括定时任务的线程执行方法,如定时获取用户浏览某网页次数的线程执行方法,以及定时任务的时间,如每隔5秒执行一次该线程。
又例如,服务端接收到一个用于处理PB(protocolbuffer)数据包格式的线程建立请求,其中,PB为google的一种数据交换的格式,该线程建立请求包含与其所属用于处理PB数据包格式的线程类型相匹配的请求处理参数,包括处理PB格式的数据包的方法,如将PB格式的数据包以存放数据长度的数据头和存放数据内容的数据块方式重新封装的方法,对PB收包格式的定义参数,如定义PB收包格式为String(字符串)类型的参数,以及对PB发包格式的定义参数,如定义PB发包格式为String类型的参数。
又例如,服务端接收到一个用于处理建立socket(套接字)连接及收发消息的线程建立请求,该线程建立请求包含与其所属用于处理建立socket连接及收发消息的线程类型相匹配的请求处理参数,包括建立socket连接的监测端口信息,如设定需要建立连接的端口号为80,以及对socket连接传输数据的处理方法,如搜索传输数据中某种特定数据格式的方法。
步骤S120:根据线程建立请求,确定与线程类型相匹配的线程模板。
例如,根据服务端接收到的用于处理定时任务的线程建立请求,确定与线程类型相匹配的用于处理定时任务的线程模板。
又例如,根据服务端接收到的用于处理PB数据包格式的线程建立请求,确定与线程类型相匹配的用于处理PB数据包格式的线程模板。
又例如,根据服务端接收到的用于处理建立socket连接及收发消息的线程建立请求,确定与线程类型相匹配的用于处理建立socket连接及收发消息的线程模板。
步骤S130:将请求处理参数与相匹配的线程模板相结合,创建与线程建立请求相应的线程并执行相应任务。
具体地,当线程类型为用于处理定时任务的线程时,将请求处理参数与相匹配的线程模板相结合,创建与线程建立请求相应的线程并执行相应任务,具体包括:
将定时任务的线程执行方法及定时任务的时间与用于处理定时任务的线程相匹配的线程模板相结合,创建用于处理定时任务的线程并执行相应定时任务。
例如,当线程类型为用于处理定时任务的线程时,将请求参数包括定时获取用户浏览某网页次数的线程执行方法和定时任务的时间5秒,传递至用于处理定时任务的线程模板,该线程模板根据请求参数创建定时获取用户浏览某网页次数的线程并每隔5秒执行一次该线程。
优选地,当线程类型为用于处理数据包格式的线程时,将请求处理参数与相匹配的线程模板相结合,创建与线程建立请求相应的线程并执行相应任务,具体包括:
将处理预定格式的数据包的方法、对收包格式的定义参数及对发包格式的定义参数与用于处理数据包格式的线程相匹配的线程模板相结合,创建用于处理数据包格式的线程并执行相应的格式处理任务。
例如,当线程类型为用于处理PB数据包格式的线程时,将请求参数包括将PB格式的数据包以存放数据长度的数据头和存放数据内容的数据块方式重新封装的方法,定义PB收包格式为String(字符串)类型的参数和定义PB发包格式为String类型的参数,传递至用于处理PB数据包格式的线程模板,该线程模板根据请求参数创建处理PB格式的数据包的线程并执行相应的线程任务。
优选地,当线程类型为用于处理建立连接及收发消息的线程时,将请求处理参数与相匹配的线程模板相结合,创建与线程建立请求相应的线程并执行相应任务,具体包括:
将建立连接的监测端口信息、对传输数据的处理方法与用于处理建立连接及收发消息的线程相匹配的线程模板相结合,创建用于处理建立连接及收发消息的线程并执行相应的通信连接任务。
例如,当线程类型为用于处理建立socket连接及收发消息的线程时,将请求参数包括设定需要建立连接的端口号,连接主机的IP地址及主机名,和搜索传输数据中某种特定数据格式的方法,将上述请求参数传递至用于处理建立socket连接及收发消息的线程模板,该线程模板根据请求参数创建建立socket连接及收发消息的线程,在传输数据中搜索得到某种特定格式的数据。
在一优选实施例中,如图2所示,该方法还包括步骤S210:获取与各个线程类型相应的公共资源信息;S220:基于公共资源信息生成与各个线程类型相应的线程模板。
例如,获取用于处理定时任务的线程类型相应的公共资源信息,如线程的堆栈空间大小,基于公共资源信息生成与用于处理定时任务的线程类型相应的线程模板。
又例如,获取用于处理PB数据包格式的线程类型相应的公共资源信息,如线程的堆栈空间大小和处理PB格式类型的方法,基于公共资源信息生成与用于处理PB数据包格式的线程类型相应的线程模板。
又例如,获取用于处理建立socket连接及收发消息的线程类型相应的公共资源信息,如线程的堆栈空间大小和线程的socket资源,如建立socket连接的方法,基于公共资源信息生成与用于处理建立socket连接及收发消息的线程类型相应的线程模板。
表1
在一具体应用场景中,服务端获取用于处理PB数据包格式的线程类型相应的公共资源信息,包括线程的堆栈空间大小和处理PB格式类型的方法,基于公共资源信息生成与用于处理PB数据包格式的线程类型相应的线程模板,该线程模板的名称为PBThread;同时,服务端获取用于处理建立socket连接及收发消息的线程类型相应的公共资源信息,包括线程的堆栈空间大小和建立socket连接的方法,基于公共资源信息生成与用于处理建立socket连接及收发消息的线程类型相应的线程模板,该线程模板的名称为SocketThread。当服务端接收到两个线程建立请求,一个用于处理PB数据包格式的线程建立请求和一个用于处理建立socket连接及收发消息的线程建立请求,用于处理PB数据包格式的线程建立请求包含与其所属用于处理PB数据包格式的线程类型相匹配的请求处理参数,包括处理预定PB格式的数据包的方法FunctionA,如上表1,将数据内容为“abc”的PB格式的数据包以存放数据长度的数据头“3”和存放数据内容的数据块“abc”方式重新封装的方法,定义PB收包格式为String类型的参数,定义PB发包格式为String数组类型的参数,将请求参数传递至线程模板PBThread,线程模板PBThread根据请求参数创建处理PB格式的数据包的线程Thread1,Thread1线程接收String类型的PB数据包,通过方法FunctionA对PB数据包进行重新封装后得到String数组类型的PB数据包,将封装后的PB数据包返回给数据请求方;用于处理建立socket连接及收发消息的线程建立请求包含建立socket连接的监测端口信息,连接主机的IP地址及主机名,和搜索传输数据中某种特定数据格式的方法,将请求参数传递线程模板SocketThread,线程模板SocketThread根据请求参数创建处理建立socket连接及收发消息的线程Thread2,Thread2线程根据socket连接的主机名称、IP地址及监测端口信息,与主机建立连接,随后根据搜索传输数据中某种特定数据格式的方法对传输数据进行相应处理。
图3为本发明中另一实施例的基于线程模板的线程建立及处理的装置的结构示意图。
接收模块310接收归属于至少一种线程类型的线程建立请求,线程建立请求包含与其所属线程类型相匹配的请求处理参数;确定模块320根据线程建立请求,确定与线程类型相匹配的线程模板;创建模块330将请求处理参数与相匹配的线程模板相结合,创建与线程建立请求相应的线程并执行相应任务。
本发明的实施例中,提出了一种基于线程模板的线程建立及处理的方案,通过建立与各个线程类型相应的线程模板并调用相应的线程模板执行相应任务,充分的考虑了线程的类型,当线程的调用量较大时,避免了以统一的方法调用线程造成CPU运行大量重复性工作,从而耗费系统大量的CPU资源的情况,提高了线程的运行效率;同时,对软件开发人员而言,减少了大量重复性开发工作,提高了开发的效率,进一步地,通过本方案的线程调用方法,提高了软件程序内部代码的内聚性而降低了耦合性,从而提高了程序的整体内部框架结构的质量,且易于软件开发人员对程序的后期维护。
接收模块310接收归属于至少一种线程类型的线程建立请求,线程建立请求包含与其所属线程类型相匹配的请求处理参数。
其中,线程类型具体包括但不限于:
用于处理定时任务的线程;
用于处理数据包格式的线程;
用于处理建立连接及收发消息的线程。
其中,与用于处理定时任务的线程相匹配的请求处理参数,具体包括:
定时任务的线程执行方法;
定时任务的时间。
其中,与用于处理数据包格式的线程相匹配的请求处理参数,具体包括:
处理预定格式的数据包的方法;
对收包格式的定义参数;
对发包格式的定义参数。
其中,与用于处理建立连接及收发消息的线程相匹配的请求处理参数,具体包括:
建立连接的监测端口信息;
对传输数据的处理方法。
例如,服务端接收到一个用于处理定时任务的线程建立请求,该线程建立请求包含与其所属用于处理定时任务的线程类型相匹配的请求处理参数,包括定时任务的线程执行方法,如定时获取用户浏览某网页次数的线程执行方法,以及定时任务的时间,如每隔5秒执行一次该线程。
又例如,服务端接收到一个用于处理PB(protocolbuffer)数据包格式的线程建立请求,其中,PB为google的一种数据交换的格式,该线程建立请求包含与其所属用于处理PB数据包格式的线程类型相匹配的请求处理参数,包括处理PB格式的数据包的方法,如将PB格式的数据包以存放数据长度的数据头和存放数据内容的数据块方式重新封装的方法,对PB收包格式的定义参数,如定义PB收包格式为String(字符串)类型的参数,以及对PB发包格式的定义参数,如定义PB发包格式为String类型的参数。
又例如,服务端接收到一个用于处理建立socket(套接字)连接及收发消息的线程建立请求,该线程建立请求包含与其所属用于处理建立socket连接及收发消息的线程类型相匹配的请求处理参数,包括建立socket连接的监测端口信息,如设定需要建立连接的端口号为80,以及对socket连接传输数据的处理方法,如搜索传输数据中某种特定数据格式的方法。
确定模块320根据线程建立请求,确定与线程类型相匹配的线程模板。
例如,根据服务端接收到的用于处理定时任务的线程建立请求,确定与线程类型相匹配的用于处理定时任务的线程模板。
又例如,根据服务端接收到的用于处理PB数据包格式的线程建立请求,确定与线程类型相匹配的用于处理PB数据包格式的线程模板。
又例如,根据服务端接收到的用于处理建立socket连接及收发消息的线程建立请求,确定与线程类型相匹配的用于处理建立socket连接及收发消息的线程模板。
创建模块330将请求处理参数与相匹配的线程模板相结合,创建与线程建立请求相应的线程并执行相应任务。
具体地,当线程类型为用于处理定时任务的线程时,创建模块330将定时任务的线程执行方法及定时任务的时间与用于处理定时任务的线程相匹配的线程模板相结合,创建用于处理定时任务的线程并执行相应定时任务。
例如,当线程类型为用于处理定时任务的线程时,将请求参数包括定时获取用户浏览某网页次数的线程执行方法和定时任务的时间5秒,传递至用于处理定时任务的线程模板,该线程模板根据请求参数创建定时获取用户浏览某网页次数的线程并每隔5秒执行一次该线程。
优选地,当线程类型为用于处理数据包格式的线程时,创建模块330将处理预定格式的数据包的方法、对收包格式的定义参数及对发包格式的定义参数与用于处理数据包格式的线程相匹配的线程模板相结合,创建用于处理数据包格式的线程并执行相应的格式处理任务。
例如,当线程类型为用于处理PB数据包格式的线程时,将请求参数包括将PB格式的数据包以存放数据长度的数据头和存放数据内容的数据块方式重新封装的方法,定义PB收包格式为String(字符串)类型的参数和定义PB发包格式为String类型的参数,传递至用于处理PB数据包格式的线程模板,该线程模板根据请求参数创建处理PB格式的数据包的线程并执行相应的线程任务。
优选地,当线程类型为用于处理建立连接及收发消息的线程时,创建模块330将建立连接的监测端口信息、对传输数据的处理方法与用于处理建立连接及收发消息的线程相匹配的线程模板相结合,创建用于处理建立连接及收发消息的线程并执行相应的通信连接任务。
例如,当线程类型为用于处理建立socket连接及收发消息的线程时,将请求参数包括设定需要建立连接的端口号,连接主机的IP地址及主机名,和搜索传输数据中某种特定数据格式的方法,将上述请求参数传递至用于处理建立socket连接及收发消息的线程模板,该线程模板根据请求参数创建建立socket连接及收发消息的线程,在传输数据中搜索得到某种特定格式的数据。
在一优选实施例中,如图4所示,该装置还包括获取模块410获取与各个线程类型相应的公共资源信息;模板生成模块420基于公共资源信息生成与各个线程类型相应的线程模板。
例如,获取用于处理定时任务的线程类型相应的公共资源信息,如线程的堆栈空间大小,基于公共资源信息生成与用于处理定时任务的线程类型相应的线程模板。
又例如,获取用于处理PB数据包格式的线程类型相应的公共资源信息,如线程的堆栈空间大小和处理PB格式类型的方法,基于公共资源信息生成与用于处理PB数据包格式的线程类型相应的线程模板。
又例如,获取用于处理建立socket连接及收发消息的线程类型相应的公共资源信息,如线程的堆栈空间大小和线程的socket资源,如建立socket连接的方法,基于公共资源信息生成与用于处理建立socket连接及收发消息的线程类型相应的线程模板。
在一具体应用场景中,服务端获取用于处理PB数据包格式的线程类型相应的公共资源信息,包括线程的堆栈空间大小和处理PB格式类型的方法,基于公共资源信息生成与用于处理PB数据包格式的线程类型相应的线程模板,该线程模板的名称为PBThread;同时,服务端获取用于处理建立socket连接及收发消息的线程类型相应的公共资源信息,包括线程的堆栈空间大小和建立socket连接的方法,基于公共资源信息生成与用于处理建立socket连接及收发消息的线程类型相应的线程模板,该线程模板的名称为SocketThread。当服务端接收到两个线程建立请求,一个用于处理PB数据包格式的线程建立请求和一个用于处理建立socket连接及收发消息的线程建立请求,用于处理PB数据包格式的线程建立请求包含与其所属用于处理PB数据包格式的线程类型相匹配的请求处理参数,包括处理预定PB格式的数据包的方法FunctionA,如上表1,将数据内容为“abc”的PB格式的数据包以存放数据长度的数据头“3”和存放数据内容的数据块“abc”方式重新封装的方法,定义PB收包格式为String类型的参数,定义PB发包格式为String数组类型的参数,将请求参数传递至线程模板PBThread,线程模板PBThread根据请求参数创建处理PB格式的数据包的线程Thread1,Thread1线程接收String类型的PB数据包,通过方法FunctionA对PB数据包进行重新封装后得到String数组类型的PB数据包,将封装后的PB数据包返回给数据请求方;用于处理建立socket连接及收发消息的线程建立请求包含建立socket连接的监测端口信息,连接主机的IP地址及主机名,和搜索传输数据中某种特定数据格式的方法,将请求参数传递线程模板SocketThread,线程模板SocketThread根据请求参数创建处理建立socket连接及收发消息的线程Thread2,Thread2线程根据socket连接的主机名称、IP地址及监测端口信息,与主机建立连接,随后根据搜索传输数据中某种特定数据格式的方法对传输数据进行相应处理。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-OnlyMemory,只读存储器)、RAM(RandomAccessMemory,随即存储器)、EPROM(ErasableProgrammableRead-OnlyMemory,可擦写可编程只读存储器)、EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种线程建立及处理方法,其特征在于,包括:
接收归属于至少一种线程类型的线程建立请求,所述线程建立请求包含与其所属线程类型相匹配的请求处理参数;
根据所述线程建立请求,确定与所述线程类型相匹配的线程模板;
将所述请求处理参数与相匹配的线程模板相结合,创建与所述线程建立请求相应的线程并执行相应任务。
2.根据权利要求1所述的线程建立及处理方法,其中,所述线程类型具体包括以下至少任一项:
用于处理定时任务的线程;
用于处理数据包格式的线程;
用于处理建立连接及收发消息的线程。
3.根据权利要求2所述的线程建立及处理方法,其中,与用于处理定时任务的线程相匹配的请求处理参数,具体包括:
定时任务的线程执行方法;
定时任务的时间。
4.根据权利要求3所述的线程建立及处理方法,其中,所述线程类型为用于处理定时任务的线程时,将所述请求处理参数与相匹配的线程模板相结合,来创建与所述线程建立请求相应的线程并执行相应任务,具体包括:
将所述定时任务的线程执行方法及所述定时任务的时间与所述用于处理定时任务的线程相匹配的线程模板相结合,创建用于处理定时任务的线程并执行相应定时任务。
5.根据权利要求2所述的线程建立及处理方法,其中,与用于处理数据包格式的线程相匹配的请求处理参数,具体包括:
处理预定格式的数据包的方法;
对收包格式的定义参数;
对发包格式的定义参数。
6.一种线程建立及处理装置,其特征在于,包括:
接收模块,接收归属于至少一种线程类型的线程建立请求,所述线程建立请求包含与其所属线程类型相匹配的请求处理参数;
确定模块,根据所述线程建立请求,确定与所述线程类型相匹配的线程模板;
创建模块,将所述请求处理参数与相匹配的线程模板相结合,创建与所述线程建立请求相应的线程并执行相应任务。
7.根据权利要求6所述的线程建立及处理装置,其中,所述线程类型具体包括以下至少任一项:
用于处理定时任务的线程;
用于处理数据包格式的线程;
用于处理建立连接及收发消息的线程。
8.根据权利要求7所述的线程建立及处理装置,其中,与用于处理定时任务的线程相匹配的请求处理参数,具体包括:
定时任务的线程执行方法;
定时任务的时间。
9.根据权利要求8所述的线程建立及处理装置,其中,所述线程类型为用于处理定时任务的线程时,所述创建模块具体用于将所述定时任务的线程执行方法及所述定时任务的时间与所述用于处理定时任务的线程相匹配的线程模板相结合,创建用于处理定时任务的线程并执行相应定时任务。
10.根据权利要求7所述的线程建立及处理装置,其中,与用于处理数据包格式的线程相匹配的请求处理参数,具体包括:
处理预定格式的数据包的方法;
对收包格式的定义参数;
对发包格式的定义参数。
CN201510727254.8A 2015-10-30 2015-10-30 线程建立及处理的方法及装置 Pending CN105302557A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510727254.8A CN105302557A (zh) 2015-10-30 2015-10-30 线程建立及处理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510727254.8A CN105302557A (zh) 2015-10-30 2015-10-30 线程建立及处理的方法及装置

Publications (1)

Publication Number Publication Date
CN105302557A true CN105302557A (zh) 2016-02-03

Family

ID=55199855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510727254.8A Pending CN105302557A (zh) 2015-10-30 2015-10-30 线程建立及处理的方法及装置

Country Status (1)

Country Link
CN (1) CN105302557A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105955811A (zh) * 2016-05-05 2016-09-21 北京思特奇信息技术股份有限公司 一种基于远程调用方式实现任务调度的系统及方法
CN108829502A (zh) * 2018-06-21 2018-11-16 北京奇虎科技有限公司 线程操作的实现方法和装置
CN108984728A (zh) * 2018-07-11 2018-12-11 北京奇艺世纪科技有限公司 一种代理类生成方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1594050A1 (en) * 2004-03-16 2005-11-09 Ramco Systems Limited Method and system for planning and control/estimation of software size driven by standard representation of software structure
CN102117222A (zh) * 2010-01-04 2011-07-06 朗讯科技公司 多线程启动方法
CN102467412A (zh) * 2010-11-16 2012-05-23 金蝶软件(中国)有限公司 一种处理操作请求的方法、装置及业务系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1594050A1 (en) * 2004-03-16 2005-11-09 Ramco Systems Limited Method and system for planning and control/estimation of software size driven by standard representation of software structure
CN102117222A (zh) * 2010-01-04 2011-07-06 朗讯科技公司 多线程启动方法
CN102467412A (zh) * 2010-11-16 2012-05-23 金蝶软件(中国)有限公司 一种处理操作请求的方法、装置及业务系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
胡晓旭: "《Java程序设计基础》", 31 March 2014, 清华大学出版社 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105955811A (zh) * 2016-05-05 2016-09-21 北京思特奇信息技术股份有限公司 一种基于远程调用方式实现任务调度的系统及方法
CN108829502A (zh) * 2018-06-21 2018-11-16 北京奇虎科技有限公司 线程操作的实现方法和装置
CN108829502B (zh) * 2018-06-21 2021-11-23 北京奇虎科技有限公司 线程操作的实现方法和装置
CN108984728A (zh) * 2018-07-11 2018-12-11 北京奇艺世纪科技有限公司 一种代理类生成方法及装置

Similar Documents

Publication Publication Date Title
CN107665233B (zh) 数据库数据处理方法、装置、计算机设备和存储介质
CN110908788B (zh) 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质
CN103870260A (zh) 业务接口开发的方法及系统
CN103577320A (zh) 远程终端测试方法及系统
CN108038212B (zh) 一种数据交互方法、装置、系统、设备和存储介质
CN106997394B (zh) 一种数据乱序到达处理方法和系统
CN105302557A (zh) 线程建立及处理的方法及装置
CN101634946B (zh) 一种rfid构件的生成方法
CN104216766A (zh) 对流数据进行处理的方法及装置
CN112181522A (zh) 数据处理的方法、装置以及电子设备
CN114760369B (zh) 一种协议元数据提取方法、装置、设备及存储介质
CN106845625A (zh) 一种用于机器人的交互输出方法以及机器人
CN111782473A (zh) 分布式日志数据处理方法、装置及系统
CN111294288A (zh) 一种流量识别方法、装置、应用程序接口网关和存储介质
CN102880471A (zh) 基于命令行的命令执行方法及命令行操作系统
CN113839902B (zh) 通信协议适配方法、装置、计算机设备和存储介质
CN109144853B (zh) 一种软件定义无线电SoC芯片调试系统
WO2022253131A1 (zh) 数据解析方法、装置、计算机设备和存储介质
CN101295239A (zh) Java卡虚拟机的指令执行方法
CN113051173B (zh) 测试流程的编排执行方法、装置、计算机设备和存储介质
CN112199443B (zh) 数据同步方法、装置、计算机设备和存储介质
CN113297218B (zh) 一种多系统数据交互方法、装置及系统
CN114741400A (zh) 一种数据同步及解析方法、装置及终端设备
CN106454419A (zh) 一种获取数据的方法、装置和电子设备
CN108848398B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160203