CN115454644A - 一种针对实时监护数据的任务线程处理方法和装置 - Google Patents
一种针对实时监护数据的任务线程处理方法和装置 Download PDFInfo
- Publication number
- CN115454644A CN115454644A CN202211178499.6A CN202211178499A CN115454644A CN 115454644 A CN115454644 A CN 115454644A CN 202211178499 A CN202211178499 A CN 202211178499A CN 115454644 A CN115454644 A CN 115454644A
- Authority
- CN
- China
- Prior art keywords
- thread
- task
- management module
- real
- data packet
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H50/00—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
- G16H50/20—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for computer-aided diagnosis, e.g. based on medical expert systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Public Health (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Medical Informatics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Pathology (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及一种针对实时监护数据的任务线程处理方法和装置,所述方法包括:启动数据接收模块和第一、第二、第三线程管理模块;由数据接收模块进行实时监护数据接收处理;由第一线程管理模块为第一实时监护数据包创建一个一类任务线程记为对应的第一任务线程;并运行第一任务线程;并在完成对第一解析数据包的转发时对第一任务线程进行线程关闭和资源释放处理;由第二线程管理模块基于第一解析数据包进行二类任务线程分配处理;并运行第二任务线程;并在业务调用处理完成时对第二任务线程进行线程关闭和资源释放处理;由第三线程管理模块对第二任务线程的业务接口申请进行使用权限管理。通过本发明可以提高资源利用率、解决资源浪费问题。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种针对实时监护数据的任务线程处理方法和装置。
背景技术
医疗机构都有用于处理实时心电监护的中央监护系统。常规的中央监护系统包括数据转发子系统和数据分析子系统;数据转发子系统的功能是接收远程监护设备发送的实时监护数据包,并对其进行协议解析和数据提取从而得到实时监护数据,再将实时监护数据转发到数据分析子系统提供的任务调用接口上进行数据分析;数据分析子系统则提供与分析任务相关的任务调用接口,并基于各个任务调用接口接收和分析由数据转发子系统转发的实时监护数据,并在解析完成后向数据转发子系统回发任务完成回执。
常规的数据转发子系统在处理数据接收和转发时,采用单一任务线程的方式做任务线程管理,即每接收到一个实时监护数据包就分配一个对应的单一任务线程,并由该单一任务线程完成一个完整的数据解析、数据转发、接口调用和回执等待处理流程。因为单一任务线程处理的流程范围较大,所以预先分配的线程资源就很大而且线程的资源释放节奏也比较慢,这无疑会产生较大的资源浪费问题,一旦远程监护设备出现高并发就容易导致数据转发子系统出现资源紧张。
发明内容
本发明的目的,就是针对现有技术的缺陷,提供一种针对实时监护数据的任务线程处理方法、装置、电子设备及计算机可读存储介质;通过本发明,将原有的单一任务线程分解为一类、二类任务线程,简化单个任务线程的工作内容、缩短单个任务线程的执行时长、提高单个任务线程的执行效率、降低单个任务线程的资源占用状况,从而就可以在不改变数据转发子系统现有资源总量的前提下,更有效地提高资源利用率、解决由原有单一任务线程机制造成的资源浪费问题;与此同时,本发明还可基于系统线程资源现状对二类任务线程的分配速度进行调整:在整体资源占用比紧张时通过降低二类任务线程的分配速度来防止资源过度消耗,在一类任务线程出现高并发时通过降低二类任务线程的分配速度来防止监护数据接收发生通信阻塞的问题,在二类任务线程出现高并发时通过降低二类任务线程的分配速度来防止数据分析发生通信阻塞的问题。
为实现上述目的,本发明实施例第一方面提供了一种针对实时监护数据的任务线程处理方法,所述方法包括:
启动数据接收模块和第一、第二、第三线程管理模块;
由所述数据接收模块进行实时监护数据接收处理生成对应的第一实时监护数据包向所述第一线程管理模块转发;
由所述第一线程管理模块为所述第一实时监护数据包创建一个一类任务线程记为对应的第一任务线程;并运行所述第一任务线程对所述第一实时监护数据包进行数据解析生成对应的第一解析数据包向所述第二线程管理模块转发;并在所述第一任务线程完成对所述第一解析数据包的转发时对所述第一任务线程进行线程关闭和资源释放处理;
由所述第二线程管理模块基于所述第一解析数据包进行二类任务线程分配处理生成对应的第二任务线程;并运行所述第二任务线程进行业务调用处理;并在业务调用处理完成时对所述第二任务线程进行线程关闭和资源释放处理;在所述第二任务线程的运行过程中由所述第三线程管理模块对所述第二任务线程的业务接口申请进行使用权限管理。
优选的,所述数据接收模块通过有线或无线的方式与远程的监护设备连接;所述由所述数据接收模块进行实时监护数据接收处理生成对应的第一实时监护数据包向所述第一线程管理模块转发,具体包括:
所述数据接收模块接收所述监护设备发送的所述第一实时监护数据包;并将所述第一实时监护数据包向所述第一线程管理模块转发。
优选的,所述一类任务线程为处理监护数据解析业务的任务线程类型;所述一类任务线程的线程类型包括多个第一线程类型,各个所述第一线程类型对应一个解析协议版本;
所述二类任务线程为处理监护数据分析业务的任务线程类型;所述二类任务线程的线程类型包括多个第二线程类型,各个所述第二线程类型对应一个分析业务标识。
优选的,所述由所述第一线程管理模块为所述第一实时监护数据包创建一个一类任务线程记为对应的第一任务线程,具体包括:
所述第一线程管理模块从所述第一实时监护数据包中提取出第一解析协议版本;并将与所述第一解析协议版本对应的所述第一线程类型作为当前线程类型;并创建一个线程类型为所述当前线程类型的所述一类任务线程作为对应的所述第一任务线程,并为所述第一任务线程分配一个唯一的线程标识作为对应的第一线程标识。
优选的,所述运行所述第一任务线程对所述第一实时监护数据包进行数据解析生成对应的第一解析数据包向所述第二线程管理模块转发,具体包括:
所述第一线程管理模块运行所述第一任务线程并将所述第一实时监护数据包向所述第一任务线程发送;
所述第一任务线程在运行过程中,调用与当前所述第一解析协议版本对应的解析业务接口对所述第一实时监护数据包进行解析得到对应的第一设备标识、第一分析业务标识和第一实时监护数据组成对应的所述第一解析数据包向所述第二线程管理模块转发,并在转发成功时向所述第一线程管理模块回发携带了所述第一线程标识的第一完成回执。
优选的,所述在所述第一任务线程完成对所述第一解析数据包的转发时对所述第一任务线程进行线程关闭和资源释放处理,具体包括:
所述第一线程管理模块在接收到所述第一任务线程回发的所述第一完成回执时,从中提取出所述第一线程标识;并对与所述第一线程标识匹配的运行中的一类任务线程进行线程关闭和资源释放处理。
优选的,所述由所述第二线程管理模块基于所述第一解析数据包进行二类任务线程分配处理生成对应的第二任务线程,具体包括:
所述第二线程管理模块将所述第一解析数据包存入预设的第一缓存队列;并获取当前系统的线程资源使用状态作为对应的第一资源状态;并对所述第一资源状态是否可以满足所述二类任务线程的创建条件进行识别;若识别结果为不满足,则在间隔一个预设时长之后再次获取当前系统的线程资源使用状态作为对应的所述第一资源状态,并再次对所述第一资源状态是否可以满足所述二类任务线程的创建条件进行识别,直到识别结果为满足为止;若识别结果为满足,则从所述第一缓存队列中读取最旧的所述第一解析数据包作为当前解析数据包,并从所述当前解析数据包中提取出第一设备标识、第一分析业务标识和第一实时监护数据,并将与所述第一分析业务标识对应的所述第二线程类型作为当前线程类型,并创建一个线程类型为所述当前线程类型的所述二类任务线程作为对应的所述第二任务线程,并为所述第二任务线程分配一个唯一的线程标识作为对应的第二线程标识,并将所述当前解析数据包向所述第二任务线程发送,并在发送结束时将所述当前解析数据包从所述第一缓存队列中移除。
进一步的,所述第一资源状态包括第一资源总量、第一资源使用总量、一类任务线程总量和二类任务线程总量;所述对所述第一资源状态是否可以满足所述二类任务线程的创建条件进行识别,具体包括:
所述第二线程管理模块根据所述第一资源总量和所述第一资源剩余总量计算对应的第一总资源占用比,第一总资源占用比=第一资源使用总量/第一资源总量;
当所述第一总资源占用比已超过预设的总资源占用比报警阈值时,输出识别结果为不满足;
当所述第一总资源占用比未超过所述总资源占用比报警阈值时,对所述一类任务线程总量是否超过预设的一类并发总量报警阈值且所述二类任务线程总量是否超过预设的二类并发总量报警阈值进行识别;若所述一类任务线程总量未超过所述一类并发总量报警阈值且所述二类任务线程总量未超过所述二类并发总量报警阈值,则输出识别结果为满足;若所述一类任务线程总量已超过所述一类并发总量报警阈值或所述二类任务线程总量已超过所述二类并发总量报警阈值,则输出识别结果为不满足。
优选的,所述运行所述第二任务线程进行业务调用处理,具体包括:
所述第二线程管理模块运行所述第二任务线程;
所述第二任务线程在运行过程中,将携带了所述第二线程标识、所述第一设备标识和所述第一分析业务标识的所述业务接口申请向所述第三线程管理模块发送,并接收所述第三线程管理模块回发的第一申请状态;并对所述第一申请状态进行识别;当所述第一申请状态为等待状态时,在间隔一个预设时长之后再次向所述第三线程管理模块发送所述业务接口申请直到所述第三线程管理模块回发的所述第一申请状态为成功状态为止;当所述第一申请状态为成功状态时,调用与当前所述第一分析业务标识对应的分析业务接口对所述第一实时监护数据进行数据分析处理,并接收所述分析业务接口返回的第二完成状态;当所述第二完成状态为成功状态时,向所述第二线程管理模块回发携带了所述第二线程标识的第二完成回执。
优选的,所述在业务调用处理完成时对所述第二任务线程进行线程关闭和资源释放处理,具体包括:
所述第二线程管理模块在接收到所述第二任务线程回发的所述第二完成回执时,从中提取出所述第二线程标识;并对与所述第二线程标识匹配的运行中的二类任务线程进行线程关闭和资源释放处理。
优选的,所述在所述第二任务线程的运行过程中由所述第三线程管理模块对所述第二任务线程的业务接口申请进行使用权限管理,具体包括:
所述第三线程管理模块在接收到所述第二任务线程发送的所述业务接口申请时,从中提取出所述第二线程标识、所述第一设备标识和所述第一分析业务标识;并对是否存在与所述第一设备标识和所述第一分析业务标识匹配的第一任务队列进行确认;
若确认不存在,则创建一个与所述第一设备标识和所述第一分析业务标识匹配的所述第一任务队列;并将所述第二线程标识作为最新的第一任务队列记录向所述第一任务队列进行记录添加处理;并在所述记录添加处理成功时,向所述第二线程标识对应的所述第二任务线程回发具体为成功状态的所述第一申请状态;所述第一任务队列包括多个所述第一任务队列记录;
若确认存在,则将所述第一任务队列中与所述第二线程标识匹配的所述第一任务队列记录记为当前匹配任务记录;若所述当前匹配任务记录不为空,则对所述当前匹配任务记录是否为所述第一任务队列中最旧的所述第一任务队列记录进行确认,若确认是则向所述第二线程标识对应的所述第二任务线程回发具体为成功状态的所述第一申请状态,若确认不是则向所述第二线程标识对应的所述第二任务线程回发具体为等待状态的所述第一申请状态;若所述当前匹配任务记录为空,则将所述第二线程标识作为最新的所述第一任务队列记录向所述第一任务队列进行记录添加处理,并在所述记录添加处理成功时向所述第二线程标识对应的所述第二任务线程回发具体为等待状态的所述第一申请状态。
优选的,所述方法还包括:
所述第三线程管理模块定期对存在的各个所述第一任务队列进行遍历;遍历时,将当前遍历的所述第一任务队列作为当前任务队列;并将所述当前任务队列中最旧的所述第一任务队列记录作为当前任务队列记录;并将所述当前任务队列记录的所述第二线程标识对应的所述第二任务线程作为当前任务线程;并对所述当前任务线程是否已经被释放进行确认;若确认所述当前任务线程已经被释放,则将所述当前任务队列记录从所述当前任务队列中删除,并在记录删除成功时对所述当前任务队列是否队列为空进行确认,若确认队列为空则将所述当前任务队列删除;若确认所述当前任务线程未被释放,则转至下一个所述第一任务队列进行遍历。
本发明实施例第二方面提供了一种实现上述第一方面所述的方法的装置,所述装置包括:启动模块、数据接收模块、第一线程管理模块、第二线程管理模块和第三线程管理模块;
所述启动模块用于启动所述数据接收模块和所述第一、第二、第三线程管理模块;
所述数据接收模块用于进行实时监护数据接收处理生成对应的第一实时监护数据包向所述第一线程管理模块转发;
所述第一线程管理模块用于为所述第一实时监护数据包创建一个一类任务线程记为对应的第一任务线程;并运行所述第一任务线程对所述第一实时监护数据包进行数据解析生成对应的第一解析数据包向所述第二线程管理模块转发;并在所述第一任务线程完成对所述第一解析数据包的转发时对所述第一任务线程进行线程关闭和资源释放处理;
所述第二线程管理模块用于基于所述第一解析数据包进行二类任务线程分配处理生成对应的第二任务线程;并运行所述第二任务线程进行业务调用处理;并在业务调用处理完成时对所述第二任务线程进行线程关闭和资源释放处理;
所述第三线程管理模块用于在所述第二任务线程的运行过程中对所述第二任务线程的业务接口申请进行使用权限管理。
本发明实施例第三方面提供了一种电子设备,包括:存储器、处理器和收发器;
所述处理器用于与所述存储器耦合,读取并执行所述存储器中的指令,以实现上述第一方面所述的方法步骤;
所述收发器与所述处理器耦合,由所述处理器控制所述收发器进行消息收发。
本发明实施例第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令被计算机执行时,使得所述计算机执行上述第一方面所述的方法的指令。
本发明实施例提供了一种针对实时监护数据的任务线程处理方法、装置、电子设备及计算机可读存储介质;通过数据接收模块和第一、第二、第三线程管理模块对传统的单一任务线程管理模式进行改进;其中,数据接收模块用于对接远程监护设备,在接收到远程监护设备发送的第一实时监护数据包时将其转发到第一线程管理模块;第一线程管理模块用于为每个第一实时监护数据包分配一个一类任务线程,并由一类任务线程处理数据包的多版本解析工作,一类任务线程在完成解析后将第一解析数据包转发到第二线程管理模块即可被释放;第二线程管理模块用于使用第一缓存队列对接到的第一解析数据包进行数据缓存,并基于系统的线程资源状态为第一缓存队列的每个第一解析数据包进行二类任务线程分配,并由二类任务线程通过任务调用接口对解析数据包中的实时监护数据进行数据分析工作,二类任务线程一旦接收到任务调用接口返回的回执即可被释放;第三线程管理模块用于对同一个远程监护设备的同一类数据分析任务对应的多个二类任务线程进行执行顺序管理。通过本发明,将原有的单一任务线程分解为一类、二类任务线程,简化了单个任务线程的工作内容、缩短了单个任务线程的执行时长、提高了单个任务线程的执行效率、降低了单个任务线程的资源占用状况,从而就可以在不改变数据转发子系统现有资源总量的前提下,有效地提高了资源利用率、解决了由原有单一任务线程机制造成的资源浪费问题;与此同时,通过本发明第二线程管理模块基于系统线程资源现状进行二类任务线程分配的处理机制,还能在整体资源占用比紧张时通过降低二类任务线程的分配速度来防止资源过度消耗,还能在一类任务线程出现高并发时通过降低二类任务线程的分配速度来防止监护数据接收发生通信阻塞的问题,还能在二类任务线程出现高并发时通过降低二类任务线程的分配速度来防止数据分析发生通信阻塞的问题。
附图说明
图1为本发明实施例一提供的一种针对实时监护数据的任务线程处理方法示意图;
图2为本发明实施例二提供的一种针对实时监护数据的任务线程处理装置的模块结构图;
图3为本发明实施例三提供的一种电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
基于本发明实施例一提供的一种针对实时监护数据的任务线程处理方法对传统中央监护系统的数据转发子系统进行改造,可使得改造后的数据转发子系统一方面能在不改变现有资源总量的前提下解决资源浪费的问题、提高资源利用率,另一方面还能在整体资源占用比紧张的情况下有效控制资源过度消耗,再一方面还能在一、二类任务线程出现高并发的情况下对由高并发引发的通信阻塞进行有效防范;图1为本发明实施例一提供的一种针对实时监护数据的任务线程处理方法示意图,如图1所示,本方法主要包括如下步骤:
步骤1,启动数据接收模块和第一、第二、第三线程管理模块。
这里,数据接收模块和第一、第二、第三线程管理模块为数据转发子系统上实现本发明实施例方法的四个处理模块:
数据接收模块用于对接远程监护设备,在接收到远程监护设备发送的第一实时监护数据包时将其转发到第一线程管理模块;
第一线程管理模块用于为每个第一实时监护数据包分配一个一类任务线程,并运行一类任务线程处理数据包的多版本协议解析工作,并在一类任务线程完成解析并将第一解析数据包转发到第二线程管理模块之后对一类任务线程进行关闭和资源释放操作;
第二线程管理模块还包括一个第一缓存队列;该第一缓存队列采用先进先出的队列管理原则进行管理;第二线程管理模块用于使用第一缓存队列对接到的第一解析数据包进行数据缓存,并基于系统的线程资源状态为第一缓存队列的每个第一解析数据包进行二类任务线程分配,并运行二类任务线程通过任务调用接口对解析数据包中的实时监护数据进行数据分析工作,并在二类任务线程收到任务调用接口返回的回执时对二类任务线程进行关闭和资源释放操作;
第三线程管理模块用于对同一个远程监护设备的同一类数据分析任务对应的多个二类任务线程进行执行顺序管理。
步骤2,由数据接收模块进行实时监护数据接收处理生成对应的第一实时监护数据包向第一线程管理模块转发;
其中,数据接收模块通过有线或无线的方式与远程的监护设备连接;
具体包括:数据接收模块接收监护设备发送的第一实时监护数据包;并将第一实时监护数据包向第一线程管理模块转发。
这里,远程的监护设备为具有心电信号采集能力的装置、设备、终端或服务器,另外也可以为具有其他信号采集能力的装置、设备、终端或服务器;数据接收模块为数据转发子系统的通讯数据处理单元,通过有线或无线的方式与远程的监护设备连接,有线方式诸如网线、同轴数据线、串口数据线、并口数据线、USB数据线等,无线方式诸如4G/5G/LTE等移动通信网络、蓝牙通信网络、无线局域网通信网络、近场通信(Near Field Communication,NFC)网络等;
需要说明的是,远程的监护设备会预设一个数据上发频率,并根据该数据上发频率定期上发一个指定长度的实时监护数据,在上发实时监护数据时监护设备还会同步上发一个设备标识和一个分析业务标识;该设备标识即为当前监护设备的唯一身份编码;该分析业务标识用于标记当次实时监护数据对应的数据分析业务,例如,当次实时监护数据为一段心电信号,对应的数据分析业务包括实时心率分析业务(预设业务标识为标识1)、实时心搏状态分析业务(预设业务标识为标识2)等,那么,上述分析业务标识的取值范围就包括标识1、标识2;每个或每类监护设备与数据转发子系统之间的数据传输协议可采用多种数据协议格式,诸如TCP/IP、HTTP/HTTPS、WEB1.0/2.0/3.0等等,在监护设备实施数据上发时,会由当次的实时监护数据、设备标识和分析业务标识组成当次上发的明文数据,并基于预先与数据转发子系统之间约定的数据协议格式对该明文数据进行数据封装从而生成一个数据包即第一实时监护数据包,该第一实时监护数据包中应携带对应的解析协议版本,该解析协议版本与上述数据协议格式对应;监护设备在得到第一实时监护数据包之后,通过上述无线或有线方式将第一实时监护数据包向数据转发子系统发送;
数据转发子系统的数据接收模块则负责对接各个远程的监护设备,一旦接收到第一实时监护数据包就立即将其向第一线程管理模块转发;数据接收模块实际也是通过分配线程任务来处理数据接收和转发,只不过这种处理方式是由操作系统的底层通讯数据处理单元默认提供的,并不是本发明实施例特有的线程任务管理方式,所以在此不做进一步赘述。
步骤3,由第一线程管理模块为第一实时监护数据包创建一个一类任务线程记为对应的第一任务线程;并运行第一任务线程对第一实时监护数据包进行数据解析生成对应的第一解析数据包向第二线程管理模块转发;并在第一任务线程完成对第一解析数据包的转发时对第一任务线程进行线程关闭和资源释放处理;
其中,一类任务线程为处理监护数据解析业务的任务线程类型;一类任务线程的线程类型包括多个第一线程类型,各个第一线程类型对应一个解析协议版本;
这里,本法实施例对系统内的任务线程进行类型划分,将用于数据解析的即处理监护数据解析业务的任务线程统称为一类任务线程;对于一类任务线程,本法实施例还进一步细化出多个子类型及第一线程类型,每个第一线程类型对应一个解析协议版本;该解析协议版本包括协议名称和版本号,例如解析协议版本为WEB1.0,则WEB为协议名称、1.0为版本名称;每个一类任务线程的内部处理流程由两部分构成:数据解析和数据转发,数据解析部分的处理流程与对应的第一线程类型相关,数据转发则是都是一致的即将解析产生的第一解析数据包向第二线程管理模块转发;第一线程管理模块实际就是一类任务线程的管理模块,负责根据第一实时监护数据包创建一类任务线程即第一任务线程并启动该第一任务线程的运行,并在第一任务线程处理结束后对其进行及时关闭与资源释放;
步骤3具体包括:
步骤31,由第一线程管理模块为第一实时监护数据包创建一个一类任务线程记为对应的第一任务线程;
具体包括:第一线程管理模块从第一实时监护数据包中提取出第一解析协议版本;并将与第一解析协议版本对应的第一线程类型作为当前线程类型;并创建一个线程类型为当前线程类型的一类任务线程作为对应的第一任务线程,并为第一任务线程分配一个唯一的线程标识作为对应的第一线程标识;
这里,由前文可知每个第一实时监护数据包中都会带有一个解析协议版本即第一解析协议版本;第一线程管理模块得到第一解析协议版本之后,就能根据解析协议版本与第一线程类型的对应关系确定出当次创建的一类任务线程的具体类型即当前线程类型;第一线程管理模块在获得当前线程类型之后,就可以创建一个与该类型对应的一类任务线程即第一任务线程,第一线程标识则是本次创建的第一任务线程的唯一线程标识信息;
步骤32,运行第一任务线程对第一实时监护数据包进行数据解析生成对应的第一解析数据包向第二线程管理模块转发;
具体包括:第一线程管理模块运行第一任务线程并将第一实时监护数据包向第一任务线程发送;第一任务线程在运行过程中,调用与当前第一解析协议版本对应的解析业务接口对第一实时监护数据包进行解析得到对应的第一设备标识、第一分析业务标识和第一实时监护数据组成对应的第一解析数据包向第二线程管理模块转发,并在转发成功时向第一线程管理模块回发携带了第一线程标识的第一完成回执;
这里,由线程的基础知识我们可知,每个线程对象都有一个对性的数据栈用于存储线程的输入数据,每个线程也有一组对应的控制指令(诸如启动/运行、中止/恢复、关闭/结束等)用于控制线程的处理状态,每个线程都可以对上位控制模块发送线程返回值(类似函数返回值一样);第一线程管理模块即为第一任务线程的上位控制模块;第一线程管理模块运行第一任务线程并将第一实时监护数据包向第一任务线程发送的处理过程实际就是将第一实时监护数据包向第一任务线程的数据栈进行数据写入(又称为传参操作)并启动该线程进入运行状态的处理过程;第一任务线程是本发明实施例的一类任务线程,本发明实施例规定任何一类任务线程进入到运行状态后都调用与当前第一解析协议版本对应的解析业务接口对第一实时监护数据包进行解析,解析过程实际就是通过解析业务接口基于第一解析协议版本对应的解析处理流程解析第一实时监护数据包得到前文所述的明文数据,再从明文数据中提取出实时监护数据、设备标识和分析业务标识作为对应的第一实时监护数据、第一设备标识和第一分析业务标识组成第一实时监护数据包,在得到第一实时监护数据包之后本发明实施例规定该一类任务线程应将其第二线程管理模块转发并在转发完成后通过线程返回值的方式向第一线程管理模块回发携带了第一线程标识的第一完成回执;
步骤33,在第一任务线程完成对第一解析数据包的转发时对第一任务线程进行线程关闭和资源释放处理;
具体包括:第一线程管理模块在接收到第一任务线程回发的第一完成回执时,从中提取出第一线程标识;并对与第一线程标识匹配的运行中的一类任务线程进行线程关闭和资源释放处理。
这里,第一线程管理模块在接收到任意第一任务线程回发的第一完成回执时都可从中得到标识线程身份的第一线程标识;并由此根据第一线程标识对与之对应的一类任务线程进行线程关闭和资源释放处理;此处,在不同编程语言或操作系统上对线程进行资源释放的处理方式可能略有不同,有的编程语言或操作系统在关闭线程时就同步进行了资源释放操作,有的则需要在关闭之后另行进行一次资源释放操作,所以基于具体实施的平台不同上述线程关闭和资源释放处理的具体实施细节可能也会不同,需要强调的就是本发明实施例此处提到的线程关闭和资源释放处理就是要达到及时释放线程占用资源的目的。传统的单一任务线程处理机制下线程的处理流程都比较长(包括数据解析、数据转发、数据分析等),在完成了数据解析和转发之后,因为尚未完成后续的数据分析所以预留给数据解析和转发的资源不会被及时释放出来,从而造成了资源的浪费;本发明实施例将单一任务线程分解为一类任务线程和二类任务线程,在上述第一任务线程即一类任务线程完成处理之后,就能及时对其占用资源进行释放,从而就解决了单一任务线程机制下产生的资源浪费问题。
步骤4,由第二线程管理模块基于第一解析数据包进行二类任务线程分配处理生成对应的第二任务线程;并运行第二任务线程进行业务调用处理;并在业务调用处理完成时对第二任务线程进行线程关闭和资源释放处理;在第二任务线程的运行过程中,由第三线程管理模块对第二任务线程的业务接口申请进行使用权限管理;
其中,二类任务线程为处理监护数据分析业务的任务线程类型;二类任务线程的线程类型包括多个第二线程类型,各个第二线程类型对应一个分析业务标识;
这里,本法实施例对系统内的任务线程进行类型划分,将用于数据分析的即处理监护数据分析业务的任务线程统称为二类任务线程;对于二类任务线程,本法实施例还进一步细化出多个子类型及第二线程类型,每个第二线程类型对应一个分析业务标识;每个二类任务线程的数据解析处理流程与对应的第二线程类型相关;
第二线程管理模块实际就是二类任务线程的管理模块,负责根据第一解析数据包创建二类任务线程即第二任务线程并启动该第二任务线程的运行,并在第二任务线程处理结束后对其进行及时关闭与资源释放;需要说明的是,本发发明实施例的第二线程管理模块为达到能够控制二类任务线程分配速度的目的,特定使用第一缓存队列对接到的第一解析数据包进行数据缓存,并基于系统的线程资源状态为第一缓存队列的每个第一解析数据包进行二类任务线程分配;
需要说明的是,由监护系统的特点我们可知,远程的监护设备会针对同一个数据分析业务持续上发多个实时监护数据,例如,长期心率监测的情况下同一个监护设备会不停的上发实时监护数据进行持续心率分析,这时候每次分析的数据顺序是不能错乱的,本发实施例会对每次上发的实时监护数据分配一个第二任务线程,鉴于数据分析的顺序不能错,那么对应同一个监护设备的同一个数据分析业务的第二任务线程的处理顺序也应该被顺序管理起来,本发明实施例的第三线程管理模块就是用于对同一个远程监护设备的同一类数据分析任务对应的多个二类任务线程进行执行顺序管理的控制模块;
步骤4具体包括:
步骤41,由第二线程管理模块基于第一解析数据包进行二类任务线程分配处理生成对应的第二任务线程;
具体包括:第二线程管理模块将第一解析数据包存入预设的第一缓存队列;并获取当前系统的线程资源使用状态作为对应的第一资源状态;并对第一资源状态是否可以满足二类任务线程的创建条件进行识别;若识别结果为不满足,则在间隔一个预设时长之后再次获取当前系统的线程资源使用状态作为对应的第一资源状态,并再次对第一资源状态是否可以满足二类任务线程的创建条件进行识别,直到识别结果为满足为止;若识别结果为满足,则从第一缓存队列中读取最旧的第一解析数据包作为当前解析数据包,并从当前解析数据包中提取出第一设备标识、第一分析业务标识和第一实时监护数据,并将与第一分析业务标识对应的第二线程类型作为当前线程类型,并创建一个线程类型为当前线程类型的二类任务线程作为对应的第二任务线程,并为第二任务线程分配一个唯一的线程标识作为对应的第二线程标识,并将当前解析数据包向第二任务线程发送,并在发送结束后将当前解析数据包从第一缓存队列中移除;
其中,第一资源状态包括第一资源总量、第一资源使用总量、一类任务线程总量和二类任务线程总量;
此处,第一资源总量为数据转发子系统上可用于线程任务分配的系统资源总量,一般都是指的存入空间容量;第一资源使用总量则是指上述可用于线程任务分配的系统资源总量中已经被占用的系统资源的总量;对第一资源总量和第一资源使用总量的获取途径,可通过操作系统的存储管理单元获得;一、二类任务线程总量则是当前正在运行的一、二类任务线程的数量,这两个数量可通过预先设置两个计数器进行获得,对这两个计数器的操作原则就是在每次分配一个新的一类或二类任务线程时进行计数器加1操作,在每次关闭和释放一个一类或二类任务线程时进行计数器减1操作;
对第一资源状态是否可以满足二类任务线程的创建条件进行识别,具体包括:第二线程管理模块根据第一资源总量和第一资源剩余总量计算对应的第一总资源占用比,第一总资源占用比=第一资源使用总量/第一资源总量;当第一总资源占用比已超过预设的总资源占用比报警阈值时,输出识别结果为不满足;当第一总资源占用比未超过总资源占用比报警阈值时,对一类任务线程总量是否超过预设的一类并发总量报警阈值且二类任务线程总量是否超过预设的二类并发总量报警阈值进行识别;若一类任务线程总量未超过一类并发总量报警阈值且二类任务线程总量未超过二类并发总量报警阈值,则输出识别结果为满足;若一类任务线程总量已超过一类并发总量报警阈值或二类任务线程总量已超过二类并发总量报警阈值,则输出识别结果为不满足;
这里,总资源占用比报警阈值、一类并发总量报警阈值、二类并发总量报警阈值是三个预先设定的经验值;
本发明实施例的第二线程管理模块每接收到一个第一解析数据包就利用预设的第一缓存队列对其进行缓存;继而再通过上述对第一资源状态是否可以满足二类任务线程的创建条件进行识别的处理过程对二类任务线程的分配速度进行调整,调整方式就是:若上述识别过程返回的是不满足那么第二线程管理模块就不会立即创建新的二类任务线程转而用定期轮询的方式对二类任务线程的创建条件是否满足进行轮询,只有在上述识别过程返回的是满足的情况下才会建新的二类任务线程;在上述创建条件满足时,本发明实施例的第二线程管理模块会从第一缓存队列中选择时间最早的也即是最旧的第一解析数据包作为当前解析数据包并为之创建一个对应的二类任务线程即第二任务线程,创建第二任务线程时基于对应的第一分析业务标识选择对应的子类型任务线程进行创建,并将当前解析数据包向该第二任务线程进行传参操作;在完成一个第二任务线程的创建和传参之后,本发明实施例会并将当前解析数据包从第一缓存队列中移除,从而及时地对第一缓存队列中的失效数据即当前解析数据包占用的资源进行释放;
步骤42,由第二线程管理模块运行第二任务线程进行业务调用处理;在第二任务线程的运行过程中由第三线程管理模块对第二任务线程的业务接口申请进行使用权限管理;
其中,运行第二任务线程进行业务调用处理,具体包括:
第二线程管理模块运行第二任务线程;第二任务线程在运行过程中,将携带了第二线程标识、第一设备标识和第一分析业务标识的业务接口申请向第三线程管理模块发送,并接收第三线程管理模块回发的第一申请状态;并对第一申请状态进行识别;当第一申请状态为等待状态时,在间隔一个预设时长之后再次向第三线程管理模块发送业务接口申请直到第三线程管理模块回发的第一申请状态为成功状态为止;当第一申请状态为成功状态时,调用与当前第一分析业务标识对应的分析业务接口对第一实时监护数据进行数据分析处理,并接收分析业务接口返回的第二完成状态;当第二完成状态为成功状态时,向第二线程管理模块回发携带了第二线程标识的第二完成回执;
这里,每个二类任务线程即第二任务线程在运行时不会直接调用与第一分析业务标识对应的分析业务接口进行分析,这样可能会造成同一个监护设备的同一个数据分析业务的分析顺序错乱;为避免产生分析顺序错乱,第二任务线程在运行时会首先向第三线程管理模块发送业务接口申请进行业务处理权限排队;并在收到第三线程管理模块回发的第一申请状态为成功状态时才开始调用与第一分析业务标识对应的分析业务接口进行分析;并在分析结束时也就是接收到分析业务接口返回的第二完成状态为成功状态时,向第二线程管理模块回发携带了第二线程标识的第二完成回执用以激活第二线程管理模块对二类任务线程的线程关闭和资源释放处理;
对应的,在第二任务线程的运行过程中由第三线程管理模块对第二任务线程的业务接口申请进行使用权限管理,具体包括:
步骤A1,第三线程管理模块在接收到第二任务线程发送的业务接口申请时,从中提取出第二线程标识、第一设备标识和第一分析业务标识;并对是否存在与第一设备标识和第一分析业务标识匹配的第一任务队列进行确认;
这里,第三线程管理模块在每次接收到第二任务线程发送的业务接口申请时都先当前对申请中第一设备标识+第一分析业务标识对应的第一任务队列的创建情况进行确认;此处,第一任务队列是第三线程管理模块用于处理第二任务线程的队列,第一任务队列采用先进先出的队列管理原则进行管理,本发明实施例规定每个第一任务队列对应一个监护设备的一个数据分析业务,本发明实施例还规定队列中只有最旧的队列记录对应的第二任务线程可被执行,本发明实施例还规定只有尚未结束或尚未启动数据分析的第二任务线程才能在队列中存在;
步骤A2,若确认不存在,则创建一个与第一设备标识和第一分析业务标识匹配的第一任务队列;并将第二线程标识作为最新的第一任务队列记录向第一任务队列进行记录添加处理;并在记录添加处理成功时,向第二线程标识对应的第二任务线程回发具体为成功状态的第一申请状态;
其中,第一任务队列包括多个第一任务队列记录;
这里,若确认不存在,就说明对与当前第二任务线程相关的当前监护设备的当前数据分析业务而言尚不存在排队的多个第二任务线程,所以第三线程管理模块对应的创建一个第一任务队列并将当前第二任务线程的第二线程标识作为最新队列记录添加进去,添加之后当前第二任务线程对应的队列记录是唯一的一条队列记录,它既是最新的也是最旧的队列记录,所以此时第三线程管理模块可向当前第二任务线程回发具体为成功状态的第一申请状态用以告知当前第二任务线程可以执行;
步骤A3,若确认存在,则将第一任务队列中与第二线程标识匹配的第一任务队列记录记为当前匹配任务记录;若当前匹配任务记录不为空,则对当前匹配任务记录是否为第一任务队列中最旧的第一任务队列记录进行确认,若确认是则向第二线程标识对应的第二任务线程回发具体为成功状态的第一申请状态,若确认不是则向第二线程标识对应的第二任务线程回发具体为等待状态的第一申请状态;若当前匹配任务记录为空,则将第二线程标识作为最新的第一任务队列记录向第一任务队列进行记录添加处理,并在记录添加处理成功时向第二线程标识对应的第二任务线程回发具体为等待状态的第一申请状态;
这里,若确认存在,就说明对与当前第二任务线程相关的当前监护设备的当前数据分析业务而言已经存在排队的多个第二任务线程;此时,第三线程管理模块不能直接将当前第二任务线程的第二线程标识作为最新队列记录添加到存在的第一任务队列中,因为有可能该申请为一个已经排队的第二任务线程发送的重复申请,所以第三线程管理模块要基于当前第二任务线程的第二线程标识对第一任务队列中的队列记录进行查询即将第一任务队列中与第二线程标识匹配的第一任务队列记录记为当前匹配任务记录;
若当前匹配任务记录不为空,则说明当前第二任务线程是一个已经排队的第二任务线程,此时需要通过对当前匹配任务记录是否为第一任务队列中最旧的第一任务队列记录进行确认来了解当前第二任务线程的排队状况;若确认当前匹配任务记录已经是最旧的第一任务队列记录了,就说明已经排到当前第二任务线程使用对应的任务调用接口了,此时第三线程管理模块向当前第二任务线程回发具体为成功状态的第一申请状态用以告知当前第二任务线程可以执行;若确认当前匹配任务记录还不是最旧的第一任务队列记录,就说明当前第二任务线程还需继续等待,此时第三线程管理模块会向当前第二任务线程回发具体为等待状态的第一申请状态用以告知当前第二任务线程继续等待;
若当前匹配任务记录为空,则说明当前第二任务线程不是一个已经排队的第二任务线程,所以第三线程管理模块会直接将当前第二任务线程的第二线程标识作为最新队列记录添加到存在的第一任务队列中进行排队;又因为本发明实施例规定了只有尚未结束或尚未启动数据分析的第二任务线程才能在队列中存在,也就是说只要第一任务队列存在就意味着对于新增的记录而言其前面还有正在处理或等待处理的一个或多个记录,也就是说新增的记录并不是最旧的队列记录,所以此时第三线程管理模块在完成记录新增之后还应向当前第二任务线程回发具体为等待状态的第一申请状态用以告知当前第二任务线程继续等待;
综上,上述第三管理模块以与每个监护设备的每个数据分析业务对应的第一任务队列为介质完成了对第二任务线程的排队管理即对第二任务线程的使用权限管理;而在上述使用权限管理的实现过程中有一个重要的实施前提,那就是本发明实施例规定只有尚未结束或尚未启动数据分析的第二任务线程才能在队列中存在;而要实现本发明实施例的这个规定,就需要第三管理模块另外可以根据正在执行的第二任务线程的执行状态对第一任务队列中进行排队记录更新;为此,本发明实施例还包括:
第三线程管理模块定期对存在的各个第一任务队列进行遍历;遍历时,将当前遍历的第一任务队列作为当前任务队列;并将当前任务队列中最旧的第一任务队列记录作为当前任务队列记录;并将当前任务队列记录的第二线程标识对应的第二任务线程作为当前任务线程;并对当前任务线程是否已经被释放进行确认;若确认当前任务线程已经被释放,则将当前任务队列记录从当前任务队列中删除,并在记录删除成功时对当前任务队列是否队列为空进行确认,若确认队列为空则将当前任务队列删除;若确认当前任务线程未被释放,则转至下一个第一任务队列进行遍历;
这里,原理上任何操作系统对系统内正在执行的线程的状态都可查询,所以第三线程管理模块通过底层操作系统就能获得当前任务线程的状态,具体操作就是第三线程管理模块向底层操作系统发送当前任务线程的线程标识,若该线程尚未被释放则返回对应的线程状态,若该线程已经被释放则返回类似查询错误这样的错误代码;一旦收到错误代码就说明当前任务线程已经被第二线程管理模块释放,也就是说当前任务线程已经执行完成,此时,第三线程管理模块即可将第一任务队列中对应的队列记录即最旧的第一任务队列记录删除,这样下一个第一任务队列记录就能作为新的最旧第一任务队列记录,该任务队列记录对应的第二任务线程就能在下次发起业务接口申请时收到具体为成功状态的第一申请状态;另外,倘若第三线程管理模块完成记录删除后发现第一任务队列已被删空,为确保本发明实施例规定的只有尚未结束或尚未启动数据分析的第二任务线程才能在队列中存在的正确性,此时第三线程管理模块应将队列已空的第一任务队列也删除掉,这样处理有个很大的好处就是不会因为大量残留的空队列造成不必要的资源浪费;
步骤43,由第二线程管理模块在业务调用处理完成时对第二任务线程进行线程关闭和资源释放处理;
具体包括:第二线程管理模块在接收到第二任务线程回发的第二完成回执时,从中提取出第二线程标识;并对与第二线程标识匹配的运行中的二类任务线程进行线程关闭和资源释放处理。
这里,第二线程管理模块在接收到任意第二任务线程回发的第二完成回执时都可从中得到标识线程身份的第二线程标识;并由此根据第二线程标识对与之对应的二类任务线程进行线程关闭和资源释放处理。
图2为本发明实施例二提供的一种针对实时监护数据的任务线程处理装置的模块结构图,该装置可以为实现本发明实施例方法的终端设备或者服务器,也可以为与上述终端设备或者服务器连接的实现本发明实施例方法的装置,例如该装置可以是上述终端设备或者服务器的装置或芯片系统。如图2所示,针对实时监护数据的任务线程处理装置包括:启动模块201、数据接收模块202、第一线程管理模块203、第二线程管理模块204和第三线程管理模块205。
启动模块201用于启动数据接收模块201、第一线程管理模块202、第二线程管理模块203和第三线程管理模块204。
数据接收模块202用于进行实时监护数据接收处理生成对应的第一实时监护数据包向第一线程管理模块203转发。
第一线程管理模块203用于为第一实时监护数据包创建一个一类任务线程记为对应的第一任务线程;并运行第一任务线程对第一实时监护数据包进行数据解析生成对应的第一解析数据包向第二线程管理模块204转发;并在第一任务线程完成对第一解析数据包的转发时对第一任务线程进行线程关闭和资源释放处理。
第二线程管理模块204用于基于第一解析数据包进行二类任务线程分配处理生成对应的第二任务线程;并运行第二任务线程进行业务调用处理;并在业务调用处理完成时对第二任务线程进行线程关闭和资源释放处理。
第三线程管理模块205用于在第二任务线程的运行过程中对第二任务线程的业务接口申请进行使用权限管理。
本发明实施例提供的一种针对实时监护数据的任务线程处理装置,可以执行上述方法实施例中的方法步骤,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,启动模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所描述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个数字信号处理器(Digital Signal Processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(System-on-a-chip,SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本发明实施例所描述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线路(Digital Subscriber Line,DSL))或无线(例如红外、无线、蓝牙、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
图3为本发明实施例三提供的一种电子设备的结构示意图。该电子设备可以为前述的终端设备或者服务器,也可以为与前述终端设备或者服务器连接的实现本发明实施例方法的终端设备或服务器。如图3所示,该电子设备可以包括:处理器301(例如CPU)、存储器302、收发器303;收发器303耦合至处理器301,处理器301控制收发器303的收发动作。存储器302中可以存储各种指令,以用于完成各种处理功能以及实现本发明上述实施例中提供的方法和处理过程。优选的,本发明实施例涉及的电子设备还包括:电源304、系统总线305以及通信端口306。系统总线305用于实现元件之间的通信连接。上述通信端口306用于电子设备与其他外设之间进行连接通信。
在图3中提到的系统总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(Random Access Memory,RAM),也可能还包括非易失性存储器(Non-Volatile Memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器CPU、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
需要说明的是,本发明实施例还提供一种计算机可读存储介质,该存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中提供的方法和处理过程。
本发明实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中提供的方法和处理过程。
本发明实施例提供了一种针对实时监护数据的任务线程处理方法、装置、电子设备及计算机可读存储介质,通过数据接收模块和第一、第二、第三线程管理模块对传统的单一任务线程管理模式进行改进;其中,数据接收模块用于对接远程监护设备,在接收到远程监护设备发送的第一实时监护数据包时将其转发到第一线程管理模块;第一线程管理模块用于为每个第一实时监护数据包分配一个一类任务线程,并由一类任务线程处理数据包的多版本解析工作,一类任务线程在完成解析后将第一解析数据包转发到第二线程管理模块即可被释放;第二线程管理模块用于使用第一缓存队列对接到的第一解析数据包进行数据缓存,并基于系统的线程资源状态为第一缓存队列的每个第一解析数据包进行二类任务线程分配,并由二类任务线程通过任务调用接口对解析数据包中的实时监护数据进行数据分析工作,二类任务线程一旦接收到任务调用接口返回的回执即可被释放;第三线程管理模块用于对同一个远程监护设备的同一类数据分析任务对应的多个二类任务线程进行执行顺序管理。通过本发明,将原有的单一任务线程分解为一类、二类任务线程,简化了单个任务线程的工作内容、缩短了单个任务线程的执行时长、提高了单个任务线程的执行效率、降低了单个任务线程的资源占用状况,从而就可以在不改变数据转发子系统现有资源总量的前提下,有效地提高了资源利用率、解决了由原有单一任务线程机制造成的资源浪费问题;与此同时,通过本发明第二线程管理模块基于系统线程资源现状进行二类任务线程分配的处理机制,还能在整体资源占用比紧张时通过降低二类任务线程的分配速度来防止资源过度消耗,还能在一类任务线程出现高并发时通过降低二类任务线程的分配速度来防止监护数据接收发生通信阻塞的问题,还能在二类任务线程出现高并发时通过降低二类任务线程的分配速度来防止数据分析发生通信阻塞的问题。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种针对实时监护数据的任务线程处理方法,其特征在于,所述方法包括:
启动数据接收模块和第一、第二、第三线程管理模块;
由所述数据接收模块进行实时监护数据接收处理生成对应的第一实时监护数据包向所述第一线程管理模块转发;
由所述第一线程管理模块为所述第一实时监护数据包创建一个一类任务线程记为对应的第一任务线程;并运行所述第一任务线程对所述第一实时监护数据包进行数据解析生成对应的第一解析数据包向所述第二线程管理模块转发;并在所述第一任务线程完成对所述第一解析数据包的转发时对所述第一任务线程进行线程关闭和资源释放处理;
由所述第二线程管理模块基于所述第一解析数据包进行二类任务线程分配处理生成对应的第二任务线程;并运行所述第二任务线程进行业务调用处理;并在业务调用处理完成时对所述第二任务线程进行线程关闭和资源释放处理;在所述第二任务线程的运行过程中由所述第三线程管理模块对所述第二任务线程的业务接口申请进行使用权限管理。
2.根据权利要求1所述的针对实时监护数据的任务线程处理方法,其特征在于,所述数据接收模块通过有线或无线的方式与远程的监护设备连接;所述由所述数据接收模块进行实时监护数据接收处理生成对应的第一实时监护数据包向所述第一线程管理模块转发,具体包括:
所述数据接收模块接收所述监护设备发送的所述第一实时监护数据包;并将所述第一实时监护数据包向所述第一线程管理模块转发。
3.根据权利要求1所述的针对实时监护数据的任务线程处理方法,其特征在于,
所述一类任务线程为处理监护数据解析业务的任务线程类型;所述一类任务线程的线程类型包括多个第一线程类型,各个所述第一线程类型对应一个解析协议版本;
所述二类任务线程为处理监护数据分析业务的任务线程类型;所述二类任务线程的线程类型包括多个第二线程类型,各个所述第二线程类型对应一个分析业务标识。
4.根据权利要求3所述的针对实时监护数据的任务线程处理方法,其特征在于,所述由所述第一线程管理模块为所述第一实时监护数据包创建一个一类任务线程记为对应的第一任务线程,具体包括:
所述第一线程管理模块从所述第一实时监护数据包中提取出第一解析协议版本;并将与所述第一解析协议版本对应的所述第一线程类型作为当前线程类型;并创建一个线程类型为所述当前线程类型的所述一类任务线程作为对应的所述第一任务线程,并为所述第一任务线程分配一个唯一的线程标识作为对应的第一线程标识。
5.根据权利要求4所述的针对实时监护数据的任务线程处理方法,其特征在于,所述运行所述第一任务线程对所述第一实时监护数据包进行数据解析生成对应的第一解析数据包向所述第二线程管理模块转发,具体包括:
所述第一线程管理模块运行所述第一任务线程并将所述第一实时监护数据包向所述第一任务线程发送;
所述第一任务线程在运行过程中,调用与当前所述第一解析协议版本对应的解析业务接口对所述第一实时监护数据包进行解析得到对应的第一设备标识、第一分析业务标识和第一实时监护数据组成对应的所述第一解析数据包向所述第二线程管理模块转发,并在转发成功时向所述第一线程管理模块回发携带了所述第一线程标识的第一完成回执。
6.根据权利要求5所述的针对实时监护数据的任务线程处理方法,其特征在于,所述在所述第一任务线程完成对所述第一解析数据包的转发时对所述第一任务线程进行线程关闭和资源释放处理,具体包括:
所述第一线程管理模块在接收到所述第一任务线程回发的所述第一完成回执时,从中提取出所述第一线程标识;并对与所述第一线程标识匹配的运行中的一类任务线程进行线程关闭和资源释放处理。
7.根据权利要求3所述的针对实时监护数据的任务线程处理方法,其特征在于,所述由所述第二线程管理模块基于所述第一解析数据包进行二类任务线程分配处理生成对应的第二任务线程,具体包括:
所述第二线程管理模块将所述第一解析数据包存入预设的第一缓存队列;并获取当前系统的线程资源使用状态作为对应的第一资源状态;并对所述第一资源状态是否可以满足所述二类任务线程的创建条件进行识别;若识别结果为不满足,则在间隔一个预设时长之后再次获取当前系统的线程资源使用状态作为对应的所述第一资源状态,并再次对所述第一资源状态是否可以满足所述二类任务线程的创建条件进行识别,直到识别结果为满足为止;若识别结果为满足,则从所述第一缓存队列中读取最旧的所述第一解析数据包作为当前解析数据包,并从所述当前解析数据包中提取出第一设备标识、第一分析业务标识和第一实时监护数据,并将与所述第一分析业务标识对应的所述第二线程类型作为当前线程类型,并创建一个线程类型为所述当前线程类型的所述二类任务线程作为对应的所述第二任务线程,并为所述第二任务线程分配一个唯一的线程标识作为对应的第二线程标识,并将所述当前解析数据包向所述第二任务线程发送,并在发送结束时将所述当前解析数据包从所述第一缓存队列中移除。
8.根据权利要求7所述的针对实时监护数据的任务线程处理方法,其特征在于,所述第一资源状态包括第一资源总量、第一资源使用总量、一类任务线程总量和二类任务线程总量;所述对所述第一资源状态是否可以满足所述二类任务线程的创建条件进行识别,具体包括:
所述第二线程管理模块根据所述第一资源总量和所述第一资源剩余总量计算对应的第一总资源占用比,第一总资源占用比=第一资源使用总量/第一资源总量;
当所述第一总资源占用比已超过预设的总资源占用比报警阈值时,输出识别结果为不满足;
当所述第一总资源占用比未超过所述总资源占用比报警阈值时,对所述一类任务线程总量是否超过预设的一类并发总量报警阈值且所述二类任务线程总量是否超过预设的二类并发总量报警阈值进行识别;若所述一类任务线程总量未超过所述一类并发总量报警阈值且所述二类任务线程总量未超过所述二类并发总量报警阈值,则输出识别结果为满足;若所述一类任务线程总量已超过所述一类并发总量报警阈值或所述二类任务线程总量已超过所述二类并发总量报警阈值,则输出识别结果为不满足。
9.根据权利要求7所述的针对实时监护数据的任务线程处理方法,其特征在于,所述运行所述第二任务线程进行业务调用处理,具体包括:
所述第二线程管理模块运行所述第二任务线程;
所述第二任务线程在运行过程中,将携带了所述第二线程标识、所述第一设备标识和所述第一分析业务标识的所述业务接口申请向所述第三线程管理模块发送,并接收所述第三线程管理模块回发的第一申请状态;并对所述第一申请状态进行识别;当所述第一申请状态为等待状态时,在间隔一个预设时长之后再次向所述第三线程管理模块发送所述业务接口申请直到所述第三线程管理模块回发的所述第一申请状态为成功状态为止;当所述第一申请状态为成功状态时,调用与当前所述第一分析业务标识对应的分析业务接口对所述第一实时监护数据进行数据分析处理,并接收所述分析业务接口返回的第二完成状态;当所述第二完成状态为成功状态时,向所述第二线程管理模块回发携带了所述第二线程标识的第二完成回执。
10.根据权利要求9所述的针对实时监护数据的任务线程处理方法,其特征在于,所述在业务调用处理完成时对所述第二任务线程进行线程关闭和资源释放处理,具体包括:
所述第二线程管理模块在接收到所述第二任务线程回发的所述第二完成回执时,从中提取出所述第二线程标识;并对与所述第二线程标识匹配的运行中的二类任务线程进行线程关闭和资源释放处理。
11.根据权利要求9所述的针对实时监护数据的任务线程处理方法,其特征在于,所述在所述第二任务线程的运行过程中由所述第三线程管理模块对所述第二任务线程的业务接口申请进行使用权限管理,具体包括:
所述第三线程管理模块在接收到所述第二任务线程发送的所述业务接口申请时,从中提取出所述第二线程标识、所述第一设备标识和所述第一分析业务标识;并对是否存在与所述第一设备标识和所述第一分析业务标识匹配的第一任务队列进行确认;
若确认不存在,则创建一个与所述第一设备标识和所述第一分析业务标识匹配的所述第一任务队列;并将所述第二线程标识作为最新的第一任务队列记录向所述第一任务队列进行记录添加处理;并在所述记录添加处理成功时,向所述第二线程标识对应的所述第二任务线程回发具体为成功状态的所述第一申请状态;所述第一任务队列包括多个所述第一任务队列记录;
若确认存在,则将所述第一任务队列中与所述第二线程标识匹配的所述第一任务队列记录记为当前匹配任务记录;若所述当前匹配任务记录不为空,则对所述当前匹配任务记录是否为所述第一任务队列中最旧的所述第一任务队列记录进行确认,若确认是则向所述第二线程标识对应的所述第二任务线程回发具体为成功状态的所述第一申请状态,若确认不是则向所述第二线程标识对应的所述第二任务线程回发具体为等待状态的所述第一申请状态;若所述当前匹配任务记录为空,则将所述第二线程标识作为最新的所述第一任务队列记录向所述第一任务队列进行记录添加处理,并在所述记录添加处理成功时向所述第二线程标识对应的所述第二任务线程回发具体为等待状态的所述第一申请状态。
12.根据权利要求11所述的针对实时监护数据的任务线程处理方法,其特征在于,所述方法还包括:
所述第三线程管理模块定期对存在的各个所述第一任务队列进行遍历;遍历时,将当前遍历的所述第一任务队列作为当前任务队列;并将所述当前任务队列中最旧的所述第一任务队列记录作为当前任务队列记录;并将所述当前任务队列记录的所述第二线程标识对应的所述第二任务线程作为当前任务线程;并对所述当前任务线程是否已经被释放进行确认;若确认所述当前任务线程已经被释放,则将所述当前任务队列记录从所述当前任务队列中删除,并在记录删除成功时对所述当前任务队列是否队列为空进行确认,若确认队列为空则将所述当前任务队列删除;若确认所述当前任务线程未被释放,则转至下一个所述第一任务队列进行遍历。
13.一种用于实现权利要求1-12任一项所述的针对实时监护数据的任务线程处理方法的装置,其特征在于,所述装置包括:启动模块、数据接收模块、第一线程管理模块、第二线程管理模块和第三线程管理模块;
所述启动模块用于启动所述数据接收模块和所述第一、第二、第三线程管理模块;
所述数据接收模块用于进行实时监护数据接收处理生成对应的第一实时监护数据包向所述第一线程管理模块转发;
所述第一线程管理模块用于为所述第一实时监护数据包创建一个一类任务线程记为对应的第一任务线程;并运行所述第一任务线程对所述第一实时监护数据包进行数据解析生成对应的第一解析数据包向所述第二线程管理模块转发;并在所述第一任务线程完成对所述第一解析数据包的转发时对所述第一任务线程进行线程关闭和资源释放处理;
所述第二线程管理模块用于基于所述第一解析数据包进行二类任务线程分配处理生成对应的第二任务线程;并运行所述第二任务线程进行业务调用处理;并在业务调用处理完成时对所述第二任务线程进行线程关闭和资源释放处理;
所述第三线程管理模块用于在所述第二任务线程的运行过程中对所述第二任务线程的业务接口申请进行使用权限管理。
14.一种电子设备,其特征在于,包括:存储器、处理器和收发器;
所述处理器用于与所述存储器耦合,读取并执行所述存储器中的指令,以实现权利要求1-12任一项所述的方法步骤;
所述收发器与所述处理器耦合,由所述处理器控制所述收发器进行消息收发。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令被计算机执行时,使得所述计算机执行权利要求1-12任一项所述的方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211178499.6A CN115454644A (zh) | 2022-09-26 | 2022-09-26 | 一种针对实时监护数据的任务线程处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211178499.6A CN115454644A (zh) | 2022-09-26 | 2022-09-26 | 一种针对实时监护数据的任务线程处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115454644A true CN115454644A (zh) | 2022-12-09 |
Family
ID=84306136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211178499.6A Pending CN115454644A (zh) | 2022-09-26 | 2022-09-26 | 一种针对实时监护数据的任务线程处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115454644A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116192985A (zh) * | 2023-02-08 | 2023-05-30 | 广州市保伦电子有限公司 | 一种数据传输方法、装置及系统 |
CN117389731A (zh) * | 2023-10-20 | 2024-01-12 | 上海芯高峰微电子有限公司 | 数据处理方法和装置、芯片、设备及存储介质 |
-
2022
- 2022-09-26 CN CN202211178499.6A patent/CN115454644A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116192985A (zh) * | 2023-02-08 | 2023-05-30 | 广州市保伦电子有限公司 | 一种数据传输方法、装置及系统 |
CN116192985B (zh) * | 2023-02-08 | 2023-11-21 | 广东保伦电子股份有限公司 | 一种数据传输方法、装置及系统 |
CN117389731A (zh) * | 2023-10-20 | 2024-01-12 | 上海芯高峰微电子有限公司 | 数据处理方法和装置、芯片、设备及存储介质 |
CN117389731B (zh) * | 2023-10-20 | 2024-04-02 | 上海芯高峰微电子有限公司 | 数据处理方法和装置、芯片、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115454644A (zh) | 一种针对实时监护数据的任务线程处理方法和装置 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
CN108023908B (zh) | 数据更新方法、装置及系统 | |
WO2021227677A1 (zh) | 场景推送方法、执行方法、装置、终端、服务器和系统 | |
CN113326155B (zh) | 一种信息处理方法、装置、系统和存储介质 | |
CN110598138A (zh) | 基于缓存的处理方法和装置 | |
US9323591B2 (en) | Listening for externally initiated requests | |
CN103516580A (zh) | 一种基于消息队列实现消息接收与转发的方法及系统 | |
WO2021129116A1 (zh) | 一种神经网络处理器及其控制方法 | |
CN107135088A (zh) | 云计算系统中处理日志的方法和装置 | |
CN111736907A (zh) | 一种自适应低延迟内存计算引擎的数据分析方法 | |
CN111726379B (zh) | 一种通信方法及装置 | |
WO2022100365A1 (zh) | 人工智能应用任务的管理方法、系统、设备及存储介质 | |
WO2015090044A1 (zh) | 一种数据扫描的方法及装置 | |
CN112612677A (zh) | 日志存储方法、装置、电子设备及可读存储介质 | |
US20140181249A1 (en) | Storage medium, information processing apparatus, and object transmission method | |
CN111596864A (zh) | 一种数据延时删除的方法、装置、服务器及存储介质 | |
CN109167740B (zh) | 一种数据传输的方法和装置 | |
CN113746883A (zh) | 链路跟踪方法及系统 | |
CN115987974A (zh) | 一种轻量级ftp服务方法及系统 | |
US20230393782A1 (en) | Io request pipeline processing device, method and system, and storage medium | |
CN116107988A (zh) | 车载日志系统、车载日志存储方法、设备、介质及车辆 | |
CN116319308A (zh) | 一种数据包转发系统 | |
CN114666289A (zh) | 一种基于电磁屏蔽体的数据传输方法及系统 | |
CN114237914A (zh) | 一种基于混合云管理调度系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |