CN115373865A - 一种并发线程管理方法、装置、电子设备和存储介质 - Google Patents
一种并发线程管理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115373865A CN115373865A CN202110536312.4A CN202110536312A CN115373865A CN 115373865 A CN115373865 A CN 115373865A CN 202110536312 A CN202110536312 A CN 202110536312A CN 115373865 A CN115373865 A CN 115373865A
- Authority
- CN
- China
- Prior art keywords
- thread
- message
- management
- identifier
- target
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
本发明实施例提供一种并发线程管理方法、装置、电子设备和存储介质;本发明实施例可以接收主进程发送的线程管理消息,该主进程中包括至少一个线程,该线程管理消息包括线程标识,基于该线程标识以及线程标识与线程之间的对应关系,确定该线程标识对应的目标线程,向该目标线程发送该线程管理消息,以使得该目标线程响应于该线程管理消息,返回线程状态信息,接收该线程状态信息,将该线程状态信息发送给该主进程;因此,主进程可以主动得知多线程机制下各线程的状态,有利于主进程根据线程状态对线程进行管理,节约线程开销。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种并发线程管理方法、装置、电子设备和存储介质。
背景技术
随着互联网的快速发展,业务量大幅度上升,业务提供方常常需要并行对很多请求进行处理。
目前,在处理并发问题时常采用多线程机制,由各个线程对不同的业务请求进行处理,在处理过程中,不同的线程可能处于不同的状态,而相关技术中主进程无法主动得知线程的状态,并且没有办法在主进程中根据每个线程的状态对多线程机制下的每个线程进行管理。
发明内容
本发明实施例提供一种并发线程管理方法、装置、电子设备和存储介质,可以让主进程主动得知多线程机制下各线程的状态,有利于主进程根据线程状态对线程进行管理,节约线程开销。
本发明实施例提供一种并发线程管理方法,包括:
接收主进程发送的线程管理消息,所述主进程中包括至少一个线程,所述线程管理消息包括线程标识;
基于所述线程标识以及线程标识与线程之间的对应关系,确定所述线程标识对应的目标线程;
向所述目标线程发送所述线程管理消息,以使得所述目标线程响应于所述线程管理消息,返回线程状态信息;
接收所述线程状态信息,将所述线程状态信息发送给所述主进程。
相应的,本发明实施例提供一种并发线程管理装置,包括:
消息接收单元,用于接收主进程发送的线程管理消息,所述主进程中包括至少一个线程,所述线程管理消息包括线程标识;
线程确定单元,用于基于所述线程标识以及线程标识与线程之间的对应关系,确定所述线程标识对应的目标线程;
消息发送单元,用于向所述目标线程发送所述线程管理消息,以使得所述目标线程响应于所述线程管理消息,返回线程状态信息;
状态返回单元,用于接收所述线程状态信息,将所述线程状态信息发送给所述主进程。
可选的,所述线程管理消息为线程统一管理消息,所述线程标识为线程统一管理标识,本发明实施例中的并发线程管理装置的线程确定单元,用于基于所述线程统一管理标识,确定所述主进程中所有的线程;
所述消息发送单元,用于向各所述线程分别发送所述线程统一管理消息,以使得各所述线程接收所述线程统一管理消息,对所述线程统一管理消息进行处理,返回线程状态信息,其中,所述各所述线程对所述线程统一管理消息的响应相同。
可选的,所述线程管理消息为线程关闭消息,所述线程标识指示所述目标线程的线程类型,所述并发线程管理装置的线程确定单元,用于基于所述线程标识指示的所述线程类型,以及所述线程标识与线程之间的对应关系,确定所述线程类型对应的目标线程;
所述消息发送单元,用于向所述目标线程发送所述线程关闭消息,以使得所述目标线程响应于所述线程关闭消息,结束内存占用,返回线程终止状态信息。
可选的,所述主进程发送至少两条线程管理消息,所述消息发送单元,用于若所述线程管理消息的所述线程标识不同,向各目标线程发送对应的线程管理消息;
若所述线程管理消息的所述线程标识相同,将所述线程管理消息存储入预设的消息存储区域,按预设的消息分发策略,向所述目标线程发送所述消息存储区域中的所述线程管理消息。
可选的,所述消息接收单元之前,还包括第一线程创建单元,用于接收主进程发送的线程创建消息,所述线程创建消息包括待创建线程标识;
基于所述待创建线程标识,创建线程,接收所述线程发送的线程创建结果消息;
若所述线程创建结果信息为线程创建成功消息,将所述待创建线程标识作为所述创建成功的线程对应的线程标识,存储所述线程与所述线程标识之间的对应关系。
相应的,本发明实施例还提供一种并发线程管理装置,该并发线程管理装置包括:
消息存储单元,用于接收消息管理中心发送的线程管理消息,将所述线程管理消息存储在消息存储队列中;
消息处理单元,用于从所述消息存储队列中读取线程管理消息,在消息处理模块中,根据预设的消息处理逻辑对所述线程管理消息进行处理;
状态信息生成单元,用于基于对所述线程管理消息的处理结果生成线程状态信息,将所述线程状态信息发送给所述消息管理中心。
可选的,所述并发线程管理装置在所述消息存储单元前,还包括第二线程创建单元,用于接收所述消息管理中心发送的线程创建消息,所述线程创建信息包括待创建线程标识;
确定消息存储区域,基于所述消息存储区域,构建所述消息存储队列;
根据所述待创建线程标识,在所述消息处理模块中设置所述待创建线程标识对应的所述消息处理逻辑;
建立所述消息存储队列与所述消息处理模块的对应关系;
向所述消息管理中心发送线程创建成功消息。
相应的,本发明实施例还提供一种电子设备,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行本发明实施例所提供的任一种并发线程管理方法中的操作。
此外,本发明实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例所提供的任一种并发线程管理方法中的步骤。
采用本发明实施例的方案,可以接收主进程发送的线程管理消息,该主进程中包括至少一个线程,该线程管理消息包括线程标识,基于该线程标识以及线程标识与线程之间的对应关系,确定该线程标识对应的目标线程,向该目标线程发送该线程管理消息,以使得该目标线程响应于该线程管理消息,返回线程状态信息,接收该线程状态信息,将该线程状态信息发送给该主进程;由于本发明实施例通过预先建立线程标识与线程之间的对应关系,主进程发送线程管理消息时,不是直接将线程管理消息发送给随机的线程,而是可以通过消息管理中心定向发送给某个线程,相应的,主线程可以接受消息管理中心的消息以实现主动得知某个线程的状态,因此,主进程可以主动得知多线程机制下各线程的状态,有利于主进程根据线程状态对线程进行管理,节约线程开销。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的并发线程管理方法的场景示意图;
图2是本发明实施例提供的一种并发线程管理方法的流程图;
图3是本发明实施例提供的另一种并发线程管理方法的流程图;
图4是本发明实施例提供的并发线程管理方法的另一流程图;
图5是本发明实施例提供的主进程通过消息管理中心与线程进行通信的架构示意图;
图6a是本发明实施例提供的线程创建过程的示意图;
图6b是本发明实施例提供的线程对接收到的线程管理消息的处理流程示意图;
图7是本发明实施例提供的一种并发线程管理装置的结构示意图;
图8是本发明实施例提供的一种并发线程管理装置的另一结构示意图;
图9是本发明实施例提供的另一种并发线程管理装置的结构示意图;
图10是本发明实施例提供的另一种并发线程管理装置的另一结构示意图;
图11是本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种并发线程管理方法、装置、电子设备和存储介质。具体地,本发明实施例提供适用于并发线程管理装置的并发线程管理方法,该并发线程管理装置可以集成在电子设备中。
该电子设备可以为终端等设备,包括但不限于移动终端和固定终端,例如移动终端包括但不限于智能手机、智能手表、平板电脑、笔记本电脑、智能车载等,其中,固定终端包括但不限于台式电脑、智能电视等。
该电子设备还可以为服务器等设备,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
本发明实施例的并发线程管理方法,可以由服务器实现,也可以由终端和服务器共同实现。
下面以终端和服务器共同实现该并发线程管理方法为例,对该方法进行说明。
如图1所示,本发明实施例提供的并发线程管理系统包括终端10和服务器20等;终端10与服务器20之间通过网络连接,比如,通过有线或无线网络连接等,其中,终端10可以作为用户向服务器20发送线程管理请求的终端存在。
其中,终端10可以为用户发送线程管理请求的终端,用于根据用户的请求生成线程管理请求发送给服务器20。
服务器20,可以用于接收终端发送的线程管理请求,由主进程根据线程管理请求生成线程管理消息。
服务器20可以接收主进程发送的线程管理消息,主进程中包括至少一个线程,线程管理消息包括线程标识,基于线程标识以及线程标识与线程之间的对应关系,确定线程标识对应的目标线程,向目标线程发送线程管理消息,以使得目标线程响应于线程管理消息,返回线程状态信息,接收线程状态信息,将线程状态信息发送给主进程。
在一些实施例中,服务器20中的主进程获取线程状态信息后,可以根据线程状态信息对目标线程进行进一步的管理,例如线程状态信息为线程正在处理消息,则主进程可以对目标线程发送包含了线程暂停处理或者线程关闭等指示信息的线程管理消息,等等。
以下分别进行详细说明。需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本发明实施例将从并发线程管理装置的角度进行描述,该并发线程管理装置具体可以集成在服务器或终端中。
如图2所示,本发明实施例提供一种并发线程管理方法,该并发线程管理方法可以由终端的处理器或者服务器执行,该并发线程管理方法的具体流程可以如下:
201、接收主进程发送的线程管理消息,主进程中包括至少一个线程,线程管理消息包括线程标识。
其中,主进程可以认为是线程的容器,可以对其中的线程进行资源分配和调度等等。例如,主进程可以是某个具有一定独立功能的程序关于某个功能的一次运行活动。
例如,主进程可以是提供人工智能云服务的云平台的平台运行进程。可以有多个人工智能服务可以接入人工智能云服务的云平台,平台运行进程(主进程)可以对接收到的相同或者不同的人工智能服务请求进行处理,为各人工智能服务请求分配对应的线程以提供相应的人工智能服务。
其中,所谓人工智能云服务,一般也被称作是AIaaS(AI as a Service,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。
其中,线程可以是包含在进程之中的实际运作单位。可以理解的是,主进程中可以只包含有一个线程,也可以并发有多个线程。
在一些示例中,主进程中的不同线程可以分别执行不同的任务,例如主进程中的线程1可以用于执行数据计算、线程2可以用于线程获取,等等。
再例如,主进程可以为多个用户提供云计算服务的云计算进程,主进程中可以运行有多个线程分根据不同的用户提供的计算数据进行云计算,等等。
其中,云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
其中,线程管理消息可以是最简单的文本字符串,也可以是自定义的复杂格式(只要能按预定格式解析出来即可)。线程管理消息是可以被线程读取的信息,或者,是主进程创建的针对于线程的序列化消息对象。
在一些实施例中,主进程可以根据不同的指令可以生成不同的线程管理消息。比如,主进程收到关闭主进程中所有线程的指令,则可以生成一条进程统一关闭消息,以使得线程在接收到进程统一关闭消息后结束工作。或者,主进程可以收到计算某组数据的指令,则可以生成一条数据计算消息,以使得对应的执行数据计算任务的线程在收到数据计算消息后,获取相应的数据进行数据计算,等等。
其中,线程标识可以用于指示将线程管理消息发送给哪个线程。例如,线程标识可以表示需要线程处理的任务类型,比如,线程标识可以代表需要被线程处理的任务类型为数据查询任务。或者,线程标识可以为需要处理线程管理消息的线程标识,比如,线程标识可以为“1”,或者,需要处理该线程管理消息的目标线程为线程“1”,等等。
线程标识的形式和指示的信息可以由技术人员根据实际使用情况自行设定,本发明实施例对此不做限定。
202、基于线程标识以及线程标识与线程之间的对应关系,确定线程标识对应的目标线程。
其中,可以预设每个线程可以处理的线程管理消息类型,则线程标识与线程之间的对应关系可以为线程管理消息类型与线程之间的对应关系。
或者,可以预设每个线程可以处理的任务类型,线程标识可以指示线程管理消息对应的任务类型,则线程标识与线程之间的对应关系可以为任务类型与线程之间的对应关系。
再例如,主进程在创建线程管理消息时,可以限定该线程管理消息由哪个线程进行处理,则线程标识可以直接指示线程,等等。
其中,线程标识与线程之间的对应关系,可以是在每次创建线程时进行即时的更新,或者,可以是由技术人员根据已创建的线程自行设置,等等。线程标识与线程之间的对应关系的建立方式有多种,本发明实施例对此不做限定。
在实际使用过程中,可能需要对主进程中的所有线程进行统一的管理,此时可以通过发送一条可以发送给所有线程的线程管理消息,通过消息管理中心发送给所有的线程。即:线程管理消息为线程统一管理消息,线程标识为线程统一管理标识。
对应的,对于需要发送给所有线程的线程管理消息,不需要再确定每条消息对应的线程,只需要确定主进程中的所有线程,即:步骤“基于线程标识以及线程标识与线程之间的对应关系,确定线程标识对应的目标线程”,可以包括:
基于线程统一管理标识,确定主进程中所有的线程。
在该示例中,目标线程为主进程中的所有线程,因此,步骤“向目标线程发送线程管理消息,以使得目标线程响应于线程管理消息,返回线程状态信息”,可以包括:
向各线程分别发送线程统一管理消息,以使得各线程接收线程统一管理消息,对线程统一管理消息进行处理,返回线程状态信息,其中,各线程对线程统一管理消息的响应相同。
可以理解的是,由于线程统一管理消息是由主进程发送给消息管理中心,再由消息管理中心发送给各线程的,因此每个线程接收到的线程统一管理消息是相同的,而主进程期望每个线程对线程统一管理消息做出的响应也是相同的。
例如,线程统一管理消息可以为进程统一关闭消息,则,步骤“向各线程分别发送线程统一管理消息,以使得各线程接收线程统一管理消息,对线程统一管理消息进行处理,返回线程状态信息,其中,各线程对线程统一管理消息的响应相同”,可以包括:
向各线程分别发送进程统一关闭消息,以使得各线程接收线程统一关闭消息,结束对内存的占用,返回线程终止状态信息。
其中,一个进程中可以包含若干个线程,各线程可以利用进程所拥有的资源。在一些实施例中,当需要为其他线程节约进程所拥有的资源,或者,当某个线程出现异常情况时,可以单独地关闭进程中的某个线程。即,线程管理消息为线程关闭消息,线程标识指示目标线程的线程类型。
步骤“基于线程标识以及线程标识与线程之间的对应关系,确定线程标识对应的目标线程”,可以包括:
基于线程标识指示的线程类型,以及线程标识与线程之间的对应关系,确定线程类型对应的目标线程;
相应的,步骤“向目标线程发送线程管理消息,以使得目标线程响应于线程管理消息,返回线程状态信息”,包括:
向目标线程发送线程关闭消息,以使得目标线程响应于线程关闭消息,结束内存占用,返回线程终止状态信息。
其中,线程终止状态信息可以指示对应的目标线程已经处于关闭或者停止工作的状态。
在一些实施例中,线程关闭消息可以为独立的一类线程管理消息,例如,线程关闭消息可以为类型为“PoisonPill”的消息,或者,线程关闭消息可以为与线程统一关闭消息相关联的消息。例如,线程统一关闭消息可以为类型为继承了“PoisonPill”类的消息类,而线程关闭消息可以是继承了“PoisonPill”类且标注了指向某个线程的消息类,等等。
在一些可选的示例中,主进程如果遇到异常或者想提前终止对某个类型的线程管理消息的并发处理,只需要发送一条类型必须为继承了PoisonPill的消息类,这样对应的线程在收到这个PoisonPill后会即刻中止掉所有运行的过程。如果想终止整个主进程中的线程,只需要发送一条类型仅为PoisonPill消息,消息管理中心收到这个PoisonPill后,会把这个PoisonPill广播通知给整个主进程的所有线程。
203、向目标线程发送线程管理消息,以使得目标线程响应于线程管理消息,返回线程状态信息。
其中,目标线程为消息管理中心确定的接收线程管理消息的线程,目标线程可以仅有一个,也可以有多个。
在一些具体的实施例中,由于高并发的情况,主进程可以向消息管理中心发送了多条同一类型或者需要同一线程进行处理的线程,此时,消息管理中心可以按接收消息的时间等预设的消息分发策略向目标线程发送线程管理消息。即,主进程可能发送了至少两条线程管理消息。
在这些实施例中,步骤“向目标线程发送线程管理消息”,可以包括:
若线程管理消息的线程标识不同,向各目标线程发送对应的线程管理消息;
若线程管理消息的线程标识相同,将线程管理消息存储入预设的消息存储区域,按预设的消息分发策略,向目标线程发送消息存储区域中的线程管理消息。
其中,消息分发策略为消息管理中心向目标线程发送线程管理消息时的处理方法。例如,消息分发策略可以为按接收到主进程发送的线程管理消息时的时间对存储在消息存储区域的消息向目标线程进行分发。
或者,主进程在生成线程管理消息时根据用户的不同为不同的线程管理消息设置了不同的处理优先级,则消息分发策略可以为对需要优先处理的消息管理消息先进行分发,再对消息存储区域中的消息按接收到主进程发送的线程管理消息时的时间向目标线程进行分发,等等。
例如,主进程可以将线程关闭消息和线程统一关闭消息的优先级设置为最高,当目标进程接收到线程关闭消息和/或线程统一关闭消息时,直接对线程关闭消息和/或线程统一关闭消息进行处理,等等。
其中,消息存储区域可以为主进程占用的存储资源中的某一部分或多部分,或者,可以将服务器中的某个存储位置作为消息管理中心的消息存储区域,等等。
204、接收线程状态信息,将线程状态信息发送给主进程。
其中,线程状态信息可以指示线程所处的状态,例如不同的线程可以分别处于暂停处理消息的中止状态、完全解除资源占用且不再处理消息的终止状态、正在处理消息的工作状态以及可以处理消息但是现在没有在处理消息的空闲状态,等等。
在一些实施例中,如图6a所示,在主进程需要线程对不同的任务进行处理之前,需要在主进程中创建线程,即,步骤“接收主进程发送的线程管理消息”之前,还可以包括:
接收主进程发送的线程创建消息,线程创建消息包括待创建线程标识;
基于待创建线程标识,创建线程,接收线程发送的线程创建结果消息;
若线程创建结果信息为线程创建成功消息,将待创建线程标识作为创建成功的线程对应的线程标识,存储线程与线程标识之间的对应关系。
其中,待创建线程标识可以指示需要新创建的线程处理的消息类型、新创建的线程的标号,等等。
在线程创建完成后,消息管理中心可以将创建成功的线程所能接收处理的消息类型注册登记到消息分发中心中。例如,可以是存储线程与线程标识之间的对应关系,或者,线程标识为线程地址,存储消息类型与线程地址之间的对应关系,等等。本发明对此不做限定,技术人员可以根据实际使用情况自行设定。
可以理解的是,主进程在获取线程状态信息后,可以根据不同的线程对应的线程状态进行线程管理。
例如,主进程可以获取到线程1的线程状态信息为线程空闲状态,处理相同消息类型的线程2处于工作状态。则主进程如果需要线程处理相同消息类型的消息时,可以指定将线程管理消息发送给线程1进行处理,提升任务处理效率。
由上可知,本发明实施例可以接收主进程发送的线程管理消息,该主进程中包括至少一个线程,该线程管理消息包括线程标识,基于该线程标识以及线程标识与线程之间的对应关系,确定该线程标识对应的目标线程,向该目标线程发送该线程管理消息,以使得该目标线程响应于该线程管理消息,返回线程状态信息,接收该线程状态信息,将该线程状态信息发送给该主进程;由于本发明实施例通过预先建立线程标识与线程之间的对应关系,主进程发送线程管理消息时,不是直接将线程管理消息发送给随机的线程,而是可以通过消息管理中心定向发送给某个线程,相应的,主线程可以接受消息管理中心的消息以实现主动得知某个线程的状态,因此,主进程可以主动得知多线程机制下各线程的状态,有利于主进程根据线程状态对线程进行管理,节约线程开销。
本发明实施例将从并发线程管理装置的角度进行描述,该并发线程管理装置具体可以集成在服务器或终端中。
如图3所示,本发明实施例提供一种并发线程管理方法,该并发线程管理方法可以由终端的处理器或者服务器执行,该并发线程管理方法的具体流程可以如下:
301、接收消息管理中心发送的线程管理消息,将线程管理消息存储在消息存储队列中。
其中,消息管理中心可以接收主进程发送的线程管理消息,并将接收到的线程管理消息分发到不同的线程当中。
在一些实施例中,可以认为消息管理中心也是一个线程,专门对线程管理消息进行管理,例如消息分发。等等。
在另一些实施例中,消息管理中心除了对线程管理消息进行管理之外,也可以对线程进行管理,例如,消息管理中心可以作为顶级线程,可以创建和停止主进程中的所有线程,甚至可关闭整个线程环境,能发现、操作主进程中的所有线程。
消息存储队列可以认为是在消息的传输过程中保存消息的容器。具体的,消息存储队列的形式可以为RocketMQ队列、Kafka队列等等,本发明实施例对此不做限定。
302、从消息存储队列中读取线程管理消息,在消息处理模块中,根据预设的消息处理逻辑对线程管理消息进行处理。
在一些可选的示例中,消息管理中心会按照接收到的需要发送到目标线程中的线程管理消息的时间顺序,将这些线程管理消息发送给目标线程。
若目标线程对线程管理消息的速度比较快,例如目标线程对线程管理消息的处理速度大于等于消息管理中心发送线程管理消息的速度,此时,目标线程也可以不将接收到的线程管理消息存储在消息存储队列中,而是直接对接收到的线程管理消息进行处理。
在另一些示例中,目标线程对线程管理消息的处理速度小于消息管理中心发送线程管理消息的速度,此时,目标线程需要暂时将接收到的线程管理消息存储在消息存储队列中。
其中,从消息存储队列中读取线程管理消息时,可以是按接收到线程管理消息时的时间对存储在消息存储队列中的消息进行读取。
在一些实施例中,主进程在生成线程管理消息时根据用户的不同为不同的线程管理消息设置了不同的处理优先级,则从消息存储队列中读取线程管理消息时可以对需要优先处理的消息管理消息先进行读取,再对消息存储队列中的消息按接收到线程管理消息时的时间进行读取,等等。
本发明对线程管理消息的读取方式不做限定,技术人员可以根据实际应用情况自行设定。
如图5所示,目标线程中包括消息处理模块,用于对获取的线程管理消息进行处理。
具体的,预设的消息处理逻辑可以是技术人员根据实际情况自行设定。例如,目标线程是进行数据处理,则预设的消息处理逻辑可以为获取线程管理消息中指示的数据,基于获取到的数据,按照预设的数据处理方法进行处理,等等。本发明对此不做限定。
303、基于对线程管理消息的处理结果生成线程状态信息,将线程状态信息发送给消息管理中心。
在本发明实施例中,线程是可以接收一个消息并且基于其执行计算的,并且这个线程是具有状态的,可以自我控制或者由消息发送方,也就是主进程控制状态。
其中,线程状态信息可以指示线程所处的状态,例如不同的线程可以分别处于暂停处理消息的中止状态、完全解除资源占用且不再处理消息的终止状态、正在处理消息的工作状态以及可以处理消息但是现在没有在处理消息的空闲状态,等等。
在一些实施例中,如图6a所示,在主进程需要线程对不同的任务进行处理之前,需要在主进程中创建线程,即,步骤“接收消息管理中心发送的线程管理消息”前,还可以包括:
接收消息管理中心发送的线程创建消息,线程创建信息包括待创建线程标识;
确定消息存储区域,基于消息存储区域,构建消息存储队列;
根据待创建线程标识,在消息处理模块中设置待创建线程标识对应的消息处理逻辑;
建立消息存储队列与消息处理模块的对应关系;
向消息管理中心发送线程创建成功消息。
其中,用户可以根据实际情况自行设定消息存储队列中的消息读取策略、消息处理模块中的消息处理逻辑、目标线程可以处理的消息类型以及目标线程可以接受的消息类型,等等。
例如,在线程创建完成后,线程可以向消息管理中心发送一条消息,以使得消息管理中心能发现线程,同时将线程所能接收处理的消息类型注册登记到消息管理中心中。
具体的,如图6b所示,当目标线程接收到一条线程管理消息时,如果目标线程仍然处于可以接收消息的状态,则目标线程可以将线程管理消息存储在消息存储队列中。
进一步的,当目标线程处于空闲状态且消息存储队列中仍然存在线程管理消息未被处理时,目标线程可以读取消息存储队列,从其中获取一条线程管理消息。
在一些示例中,目标线程可以判断线程管理消息是否为指示线程关闭的线程关闭消息,如果线程管理消息为指示线程关闭的线程关闭消息,则线程终止运行,解除对主进程的资源占用。
在另一些示例中,如果线程管理消息不是指示线程关闭的线程关闭消息,则目标进程可以在消息处理模块对线程管理消息进行处理。
在一些可选的实施例中,线程管理消息可能不是目标进程可以处理的消息类型,此时,目标线程可以提示处理异常,以使得用户自行决定对这类无法处理的消息的处理方式。
在对线程管理消息处理过程中,目标线程可以先向消息管理中心发送一条工作状态消息,以使得主进程知晓目标线程的工作状态。
在完成对线程管理消息的处理后,目标线程也可以再向消息管理中心发送一条工作已结束的状态消息,等等。本发明对此不做限定,技术人员可以根据实际使用情况自行设定。
由上可知,本发明实施例可以接收消息管理中心发送的线程管理消息,将线程管理消息存储在消息存储队列中,从消息存储队列中读取线程管理消息,在消息处理模块中,根据预设的消息处理逻辑对线程管理消息进行处理,基于对线程管理消息的处理结果生成线程状态信息,将线程状态信息发送给消息管理中心;因此,当主进程需要对每个线程进行管理时,每个线程可以独立地对接收到的线程管理消息进程处理,由此,可以认为本发明实施例中的每个线程都是独立的,当对同样的线程重复调用不需要对线程进行加锁或者锁释放,节约了加锁和锁释放的开销。另外,通过在消息存储队列中读取消息的策略设定,用户可以控制并发策略。
根据前面实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将结合图1的系统,以关闭主进程中的所有进程为例进行说明。
如图4所示,本实施例的并发线程管理方法,具体流程可以如下:
401、终端接收用户提交的进程统一关闭请求,向服务器发送进程统一关闭指令。
其中,可以由多台终端分别将接收到的用户请求直接发送给服务器,或者某一终端将各自接收到的用户请求发送至服务器,等等。
402、服务器接收到终端发送的进程统一关闭指令,由主进程向消息管理中心发送进程统一关闭消息,进程统一关闭消息包括进程统一关闭标识。
其中,进程统一关闭消息可以是是最简单的文本字符串,也可以是自定义的复杂格式(只要能按预定格式解析出来即可),例如一句待执行的程序代码,等等。本发明实施例对此不做限定。
403、服务器中的消息管理中心基于进程统一关闭标识,确定主进程中所有的线程。
例如,此时主进程可以是提供人工智能云服务的云平台的平台运行进程,主进程中可以运行有多个线程分根据不同的用户提供的计算数据进行云计算,等等。
当云平台的服务器需要进行检查或者其他不能向用户提供云服务的情况时,可以由主进程向消息管理中心发送进程统一关闭消息,以使得各线程停止云服务。
404、服务器中的消息管理中心向各线程分别发送进程统一关闭消息。
在一些可选的示例中,各线程可以存在于同一台服务器,或者各线程可以分别在不同的服务器当中工作。
例如,主进程可以采用的是分布式架构,在分布式架构中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个架构似的。分布式架构作为一个整体对用户提供服务,而整个架构的内部的协作用户来说是透明的,用户就像是在使用一个软件服务一样。本发明对此不做限定。
405、服务器中的各线程接收到消息管理中心发送的进程统一关闭消息,将进程统一关闭消息存储在消息存储队列中。
在一些可选的示例中,消息管理中心会按照接收到的需要发送到目标线程中的线程管理消息的时间顺序,将这些线程管理消息发送给目标线程。
若目标线程对线程管理消息的速度比较快,例如目标线程对线程管理消息的处理速度大于等于消息管理中心发送线程管理消息的速度,此时,目标线程也可以不将接收到的线程管理消息存储在消息存储队列中,而是直接对接收到的线程管理消息进行处理。
在另一些示例中,目标线程对线程管理消息的处理速度小于消息管理中心发送线程管理消息的速度,此时,目标线程需要暂时将接收到的线程管理消息存储在消息存储队列中。
406、服务器中的各线程从消息存储队列中读取线程管理消息,在消息处理模块中,根据预设的消息处理逻辑对线程管理消息进行处理。
其中,从消息存储队列中读取线程管理消息时,可以是按接收到线程管理消息时的时间对存储在消息存储队列中的消息进行读取。
在一些实施例中,主进程在生成线程管理消息时根据用户的不同为不同的线程管理消息设置了不同的处理优先级,则从消息存储队列中读取线程管理消息时可以对需要优先处理的消息管理消息先进行读取,再对消息存储队列中的消息按接收到线程管理消息时的时间进行读取,等等。
具体的,预设的消息处理逻辑可以是技术人员根据实际情况自行设定。例如,目标线程是进行数据处理,则预设的消息处理逻辑可以为获取线程管理消息中指示的数据,基于获取到的数据,按照预设的数据处理方法进行处理,等等。本发明对此不做限定。
407、服务器中的各线程基于对线程管理消息的处理结果生成线程状态信息,将线程状态信息发送给消息管理中心。
在本发明实施例中,线程是可以接收一个消息并且基于其执行计算的,并且这个线程是具有状态的,可以自我控制或者由消息发送方,也就是主进程控制状态。
其中,线程状态信息可以指示线程所处的状态,例如不同的线程可以分别处于暂停处理消息的中止状态、完全解除资源占用且不再处理消息的终止状态、正在处理消息的工作状态以及可以处理消息但是现在没有在处理消息的空闲状态,等等。
408、服务器中的消息管理中心接收到线程关闭状态信息,将线程关闭状态信息发送给服务器中的主进程。
可以理解的是,主进程在获取线程状态信息后,可以根据不同的线程对应的线程状态进行线程管理。
例如,主进程可以获取到主进程中所有的线程都已经关闭,则可以提示技术人员对云平台的服务器需要进行检查,等等。
由上可知,本发明实施例可以主动得知多线程机制下各线程的状态,有利于主进程根据线程状态对线程进行管理,节约线程开销。
为了更好地实施以上方法,相应的,本发明实施例还提供一种并发线程管理装置。
参考图7,该装置包括:
消息接收单元701,可以用于接收主进程发送的线程管理消息,主进程中包括至少一个线程,线程管理消息包括线程标识;
线程确定单元702,可以用于基于线程标识以及线程标识与线程之间的对应关系,确定线程标识对应的目标线程;
消息发送单元703,可以用于向目标线程发送线程管理消息,以使得目标线程响应于线程管理消息,返回线程状态信息;
状态返回单元704,可以用于接收线程状态信息,将线程状态信息发送给主进程。
可选的,线程管理消息为线程统一管理消息,线程标识为线程统一管理标识,本发明实施例中的并发线程管理装置的线程确定单元702,可以用于基于线程统一管理标识,确定主进程中所有的线程;
消息发送单元703,可以用于向各线程分别发送线程统一管理消息,以使得各线程接收线程统一管理消息,对线程统一管理消息进行处理,返回线程状态信息,其中,各线程对线程统一管理消息的响应相同。
可选的,线程管理消息为线程关闭消息,线程标识指示目标线程的线程类型,并发线程管理装置的线程确定单元702,可以用于基于线程标识指示的线程类型,以及线程标识与线程之间的对应关系,确定线程类型对应的目标线程;
消息发送单元703,可以用于向目标线程发送线程关闭消息,以使得目标线程响应于线程关闭消息,结束内存占用,返回线程终止状态信息。
可选的,主进程发送至少两条线程管理消息,消息发送单元703,可以用于若线程管理消息的线程标识不同,向各目标线程发送对应的线程管理消息;
若线程管理消息的线程标识相同,将线程管理消息存储入预设的消息存储区域,按预设的消息分发策略,向目标线程发送消息存储区域中的线程管理消息。
可选的,如图8所示,消息接收单元701之前,还包括第一线程创建单元705,可以用于接收主进程发送的线程创建消息,线程创建消息包括待创建线程标识;
基于待创建线程标识,创建线程,接收线程发送的线程创建结果消息;
若线程创建结果信息为线程创建成功消息,将待创建线程标识作为创建成功的线程对应的线程标识,存储线程与线程标识之间的对应关系。
为了更好地实施以上方法,相应的,本发明实施例还提供一种并发线程管理装置。
参考图9,该装置可以包括:
消息存储单元801,可以用于接收消息管理中心发送的线程管理消息,将线程管理消息存储在消息存储队列中;
消息处理单元802,可以用于从消息存储队列中读取线程管理消息,在消息处理模块中,根据预设的消息处理逻辑对线程管理消息进行处理;
状态信息生成单元803,可以用于基于对线程管理消息的处理结果生成线程状态信息,将线程状态信息发送给消息管理中心。
可选的,如图10所示,并发线程管理装置,在消息存储单元801前,还包括第二线程创建单元804,可以用于接收消息管理中心发送的线程创建消息,线程创建信息包括待创建线程标识;
确定消息存储区域,基于消息存储区域,构建消息存储队列;
根据待创建线程标识,在消息处理模块中设置待创建线程标识对应的消息处理逻辑;
建立消息存储队列与消息处理模块的对应关系;
向消息管理中心发送线程创建成功消息。
由上可知,通过并发线程管理装置,本发明实施例可以主动得知多线程机制下各线程的状态,有利于主进程根据线程状态对线程进行管理,节约线程开销。
此外,本发明实施例还提供一种电子设备,该电子设备可以为终端或者服务器等等,如图11所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括射频(RF,Radio Frequency)电路901、包括有一个或一个以上计算机可读存储介质的存储器902、输入单元903、显示单元904、传感器905、音频电路906、无线保真(WiFi,Wireless Fidelity)模块907、包括有一个或者一个以上处理核心的处理器908、以及电源909等部件。本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路901可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器908处理;另外,将涉及上行的数据发送给基站。通常,RF电路901包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路901还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
存储器902可用于存储软件程序以及模块,处理器908通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器908和输入单元903对存储器902的访问。
输入单元903可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元903可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器908,并能接收处理器908发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元903还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元904可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元904可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid CrystalDisplay)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器908以确定触摸事件的类型,随后处理器908根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图11中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
电子设备还可包括至少一种传感器905,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路906、扬声器,传声器可提供用户与电子设备之间的音频接口。音频电路906可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路906接收后转换为音频数据,再将音频数据输出处理器908处理后,经RF电路901以发送给比如另一电子设备,或者将音频数据输出至存储器902以便进一步处理。音频电路906还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。
WiFi属于短距离无线传输技术,终端通过WiFi模块907可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图11示出了WiFi模块907,但是可以理解的是,其并不属于电子设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器908是电子设备的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行电子设备的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器908可包括一个或多个处理核心;优选的,处理器908可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器908中。
电子设备还包括给各个部件供电的电源909(比如电池),优选的,电源可以通过电源管理系统与处理器908逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源909还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,电子设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,电子设备中的处理器908会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器908来运行存储在存储器902中的应用程序,从而实现各种功能,如下:
接收主进程发送的线程管理消息,主进程中包括至少一个线程,线程管理消息包括线程标识;
基于线程标识以及线程标识与线程之间的对应关系,确定线程标识对应的目标线程;
向目标线程发送线程管理消息,以使得目标线程响应于线程管理消息,返回线程状态信息;
接收线程状态信息,将线程状态信息发送给主进程。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种并发线程管理方法中的步骤。例如,该指令可以执行如下步骤:
接收主进程发送的线程管理消息,主进程中包括至少一个线程,线程管理消息包括线程标识;
基于线程标识以及线程标识与线程之间的对应关系,确定线程标识对应的目标线程;
向目标线程发送线程管理消息,以使得目标线程响应于线程管理消息,返回线程状态信息;
接收线程状态信息,将线程状态信息发送给主进程。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种并发线程管理方法中的步骤,因此,可以实现本发明实施例所提供的任一种并发线程管理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
根据本申请的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述实施例中的各种可选实现方式中提供的方法。
以上对本发明实施例所提供的一种并发线程管理方法、装置、电子设备和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种并发线程管理方法,其特征在于,所述方法包括:
接收主进程发送的线程管理消息,所述主进程中包括至少一个线程,所述线程管理消息包括线程标识;
基于所述线程标识以及线程标识与线程之间的对应关系,确定所述线程标识对应的目标线程;
向所述目标线程发送所述线程管理消息,以使得所述目标线程响应于所述线程管理消息,返回线程状态信息;
接收所述线程状态信息,将所述线程状态信息发送给所述主进程。
2.根据权利要求1所述的并发线程管理方法,其特征在于,所述线程管理消息为线程统一管理消息,所述线程标识为线程统一管理标识;
所述基于所述线程标识以及线程标识与线程之间的对应关系,确定所述线程标识对应的目标线程,包括:
基于所述线程统一管理标识,确定所述主进程中所有的线程;
所述向所述目标线程发送所述线程管理消息,以使得所述目标线程响应于所述线程管理消息,返回线程状态信息,包括:
向各所述线程分别发送所述线程统一管理消息,以使得各所述线程接收所述线程统一管理消息,对所述线程统一管理消息进行处理,返回线程状态信息,其中,所述各所述线程对所述线程统一管理消息的响应相同。
3.根据权利要求1所述的并发线程管理方法,其特征在于,所述线程管理消息为线程关闭消息,所述线程标识指示所述目标线程的线程类型;
所述基于所述线程标识以及线程标识与线程之间的对应关系,确定所述线程标识对应的目标线程,包括:
基于所述线程标识指示的所述线程类型,以及所述线程标识与线程之间的对应关系,确定所述线程类型对应的目标线程;
所述向所述目标线程发送所述线程管理消息,以使得所述目标线程响应于所述线程管理消息,返回线程状态信息,包括:
向所述目标线程发送所述线程关闭消息,以使得所述目标线程响应于所述线程关闭消息,结束内存占用,返回线程终止状态信息。
4.根据权利要求1所述的并发线程管理方法,其特征在于,所述主进程发送至少两条线程管理消息;
所述向所述目标线程发送所述线程管理消息,包括:
若所述线程管理消息的所述线程标识不同,向各目标线程发送对应的线程管理消息;
若所述线程管理消息的所述线程标识相同,将所述线程管理消息存储入预设的消息存储区域,按预设的消息分发策略,向所述目标线程发送所述消息存储区域中的所述线程管理消息。
5.根据权利要求1所述的方法,其特征在于,所述接收主进程发送的线程管理消息前,还包括:
接收主进程发送的线程创建消息,所述线程创建消息包括待创建线程标识;
基于所述待创建线程标识,创建线程,接收所述线程发送的线程创建结果消息;
若所述线程创建结果信息为线程创建成功消息,将所述待创建线程标识作为所述创建成功的线程对应的线程标识,存储所述线程与所述线程标识之间的对应关系。
6.一种并发线程管理方法,其特征在于,所述方法包括:
接收消息管理中心发送的线程管理消息,将所述线程管理消息存储在消息存储队列中;
从所述消息存储队列中读取线程管理消息,在消息处理模块中,根据预设的消息处理逻辑对所述线程管理消息进行处理;
基于对所述线程管理消息的处理结果生成线程状态信息,将所述线程状态信息发送给所述消息管理中心。
7.根据权利要求6所述的并发线程管理方法,其特征在于,所述接收消息管理中心发送的线程管理消息前,还包括:
接收所述消息管理中心发送的线程创建消息,所述线程创建信息包括待创建线程标识;
确定消息存储区域,基于所述消息存储区域,构建所述消息存储队列;
根据所述待创建线程标识,在所述消息处理模块中设置所述待创建线程标识对应的所述消息处理逻辑;
建立所述消息存储队列与所述消息处理模块的对应关系;
向所述消息管理中心发送线程创建成功消息。
8.一种并发线程管理装置,其特征在于,包括:
消息接收单元,用于接收主进程发送的线程管理消息,所述主进程中包括至少一个线程,所述线程管理消息包括线程标识;
线程确定单元,用于基于所述线程标识以及线程标识与线程之间的对应关系,确定所述线程标识对应的目标线程;
消息发送单元,用于向所述目标线程发送所述线程管理消息,以使得所述目标线程响应于所述线程管理消息,返回线程状态信息;
状态返回单元,用于接收所述线程状态信息,将所述线程状态信息发送给所述主进程。
9.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至7任一项所述的并发线程管理方法中的操作。
10.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的并发线程管理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110536312.4A CN115373865A (zh) | 2021-05-17 | 2021-05-17 | 一种并发线程管理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110536312.4A CN115373865A (zh) | 2021-05-17 | 2021-05-17 | 一种并发线程管理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115373865A true CN115373865A (zh) | 2022-11-22 |
Family
ID=84058689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110536312.4A Pending CN115373865A (zh) | 2021-05-17 | 2021-05-17 | 一种并发线程管理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115373865A (zh) |
-
2021
- 2021-05-17 CN CN202110536312.4A patent/CN115373865A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10268531B2 (en) | Managing delivery of code and dependent data using application containers | |
US10956280B2 (en) | Data backup method, electronic device, and storage medium | |
US10186244B2 (en) | Sound effect processing method and device, plug-in unit manager and sound effect plug-in unit | |
CN105471931B (zh) | 一种查询业务数据的方法、装置和系统 | |
CN112257135B (zh) | 一种基于多线程的模型加载方法、装置、存储介质及终端 | |
CN106874077B (zh) | 进程运行方法及装置 | |
CN108039963B (zh) | 一种容器配置方法、装置及存储介质 | |
CN106502703B (zh) | 一种函数调用方法和装置 | |
US20140365660A1 (en) | Systems and Methods for Accessing Network Data | |
CN114185491B (zh) | 一种分区文件的下载方法、装置、存储介质及计算机设备 | |
CN113592209A (zh) | 一种模型训练任务管理方法、装置、终端和存储介质 | |
CN108874554B (zh) | 信息通信方法及装置 | |
CN111078316B (zh) | 布局文件加载方法、装置、存储介质及电子设备 | |
WO2014166307A1 (en) | Method for determining performance of process of application and computer system | |
CN106095423B (zh) | 提供浏览服务的方法、终端及服务器 | |
CN114327087A (zh) | 输入事件处理方法、装置、电子设备和存储介质 | |
CN107463395B (zh) | 组件调用方法及装置 | |
CN106649595B (zh) | 一种基于对象池的网页启动加速方法、装置及终端 | |
CN111359210B (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
CN110677456A (zh) | 一种资源配置的方法及设备 | |
CN115065609A (zh) | B端SaaS系统混合部署方法及系统 | |
CN112732548B (zh) | 一种接口测试方法以及装置 | |
CN114510417A (zh) | 一种图像渲染效果测试方法、装置、电子设备和存储介质 | |
CN115373865A (zh) | 一种并发线程管理方法、装置、电子设备和存储介质 | |
CN109426572B (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 |