线程的处理方法、装置、电子设备及存储介质与流程
未命名
09-23
阅读:63
评论:0
1.本技术涉及嵌入式实时操作系统领域,具体而言,涉及一种线程的处理方法、装置、电子设备及存储介质。
背景技术:
2.一般事件使用(32/64)位整形数据存储(32/64)种事件状态,当某种事件被发送线程触发时,该事件所对应的比特位将会被置位,接收线程可以等待多个事件或等待多个事件中任意一个事件,当事件触发者检测到被置位的事件满足某个接收线程的条件则将其唤醒,接收线程被唤醒后继续运行。若等待线程设置了清除标记,则等待事件满足后将会清除等待的事件对应的比特位。
3.由于其使用同一个共享事件数据对象记录了多个事件的状态,其中任一等待该事件的线程满足后对事件的操作都会对其他线程产生影响,而多个线程往往会根据不同的目的对事件做出不同的操作,此时现有事件机制将难以满足需求。
4.针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:
5.本技术实施例提供了一种线程的处理方法、装置、电子设备及存储介质,以至少解决实时系统中由于共用事件集导致某个线程等待事件满足后清除事件,对其他等待事件与该线程等待事件重合的线程产生影响的技术问题。
6.根据本技术实施例的一个方面,提供了一种线程的处理方法,包括:获取共用事件集下发的事件状态信息;将事件状态信息同步至订阅事件集,其中,事件状态信息中包括多个事件的事件状态;在订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行目标线程,其中,目标线程与订阅事件集具有映射关系。
7.可选地,将事件状态信息同步至订阅事件集,包括:识别共用事件集中的事件状态信息是否发生变更;在共用事件集中的事件状态信息发生变更的情况下,获取共用事件集中的更新后的事件状态信息,并将更新后的事件状态信息同步至订阅事件集。
8.可选地,将事件状态信息同步至订阅事件集,包括:判断共用事件集中的事件状态信息在预设时间间隔内是否发生变更;在共用事件集中的事件状态信息在预设时间间隔内没有发生变更的情况下,获取共用事件集中的事件状态信息;将共用事件集中的事件状态信息同步至订阅事件集。
9.可选地,在以下情况下确定订阅事件集中的事件状态信息满足目标线程的运行条件:获取目标线程的运行条件指示的目标事件和运行逻辑;在订阅事件集中的事件状态信息中确定目标事件的事件状态;在运行逻辑为第一逻辑,且目标事件的事件状态均为已触发的情况下,确定订阅事件集中的事件状态信息满足目标线程的运行条件,其中,第一逻辑为逻辑与;在运行逻辑为第二逻辑,且目标事件中的任意一个事件状态为已触发的情况下,确定订阅事件集中的事件状态信息满足目标线程的运行条件,第二逻辑为逻辑或。
10.可选地,运行目标线程,包括:确定与订阅事件集具有映射关系的目标线程的数量;在数量大于1的情况下,获取多个目标线程,并确定每个目标线程在线程队列中的执行顺序,其中,线程队列用于存储与订阅事件集相关联的线程;按照执行顺序依次运行多个目标线程。
11.可选地,运行目标线程之后,方法还包括:获取目标线程的运行条件指示的目标事件,其中,目标事件的事件状态为目标线程的运行条件;初始化订阅事件集中目标事件的目标事件状态信息,其中,目标事件状态信息为与目标事件对应的事件状态。
12.可选地,在运行目标线程之后,方法还包括:删除目标线程与订阅事件集之间的映射关系。
13.可选地,方法还包括:识别共用事件集中的事件状态信息是否均为被触发状态;在共用事件集中的事件状态信息均为被触发状态的情况下,初始化共用事件集中的事件状态信息。
14.根据本技术实施例的另一方面,还提供了一种线程的处理装置,包括:获取模块,用于获取共用事件集下发的事件状态信息;同步模块,用于将事件状态信息同步至订阅事件集,其中,事件状态信息中包括多个事件的事件状态;运行模块,用于在订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行目标线程,其中,目标线程与订阅事件集具有映射关系。
15.根据本技术实施例的又一方面,还提供了一种电子设备,包括:存储器,用于存储程序指令;处理器,与存储器连接,用于执行实现以下功能的程序指令:获取共用事件集下发的事件状态信息;将事件状态信息同步至订阅事件集,其中,事件状态信息中包括多个事件的事件状态;在订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行目标线程,其中,目标线程与订阅事件集具有映射关系。
16.根据本技术实施例的再一方面,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的计算机程序,其中,该非易失性存储介质所在设备通过运行计算机程序执行上述线程的处理方法。
17.在本技术实施例中,通过获取共用事件集下发的事件状态信息;将事件状态信息同步至订阅事件集,其中,事件状态信息中包括多个事件的事件状态;在订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行目标线程,其中,目标线程与订阅事件集具有映射关系,达到了通过订阅事件集与线程关联,在线程的事件得到满足后仅需清除对应的订阅事件集中的事件标记的目的,从而实现了不影响其他线程的技术效果,进而解决了实时系统中由于共用事件集导致某个线程等待事件满足后清除事件,对其他等待事件与该线程等待事件重合的线程产生影响的技术问题。
附图说明
18.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
19.图1a是根据本技术实施例的一种线程与事件的关系示意图;
20.图1b是相关技术中的一种“与”类型事件触发机制的示意图;
21.图1c是相关技术中的一种“或”类型事件触发机制的示意图;
22.图2是根据本技术实施例的一种用于实现线程的处理方法的计算机终端的硬件结构框图;
23.图3是根据本技术实施例的一种线程的处理方法的流程图;
24.图4a是根据本技术实施例的一种逻辑与类型事件触发机制的示意图;
25.图4b是根据本技术实施例的一种逻辑或类型事件触发机制的示意图;
26.图5是根据本技术实施例的一种线程的处理装置的结构图。
具体实施方式
27.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
28.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.首先,在对本技术实施例进行解释说明的过程中出现的部分名词或术语适用于如下解释:
30.嵌入式实时系统:当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的事件之内控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的用于控制、监视或者辅助操作机器和设备的装置。
31.线程同步:控制多个线程对竞争资源有序访问的机制。
32.事件:用于线程同步的一种机制。
33.就绪队列:等待被cpu运行的线程集合。
34.发布:发布者将事件发送到一个中心点(通常称为消息队列或主题或线程队列)。
35.订阅:订阅者从该中心点订阅感兴趣的事件。
36.在相关技术中,如图1a所示,等待线程挂载在事件的等待队列上,每个线程内部维护一个等待事件数据与触发事件数据,若触发事件数据与队列中某些线程的等待事件数据一致且符合等待要求(包括“与”类型、“或”类型等待要求类型),则将满足事件数据一致条件的线程推出等待队列加入线程就绪队列并触发调度等待该线程被cpu执行。在“与”类型事件等待机制中,当且仅当线程等待的多个事件被触发时,线程才会停止等待继续执行,并将事件对象中事件记录变量的对应bit位清除。如图1b所示,线程1和线程2将事件集中的序号为1、3、29所在位置的事件的bit置为1,由于线程3的事件触发条件是and,也就是“与”类型,且线程3运行的条件是序号1、3、29所在位置的事件的bit均被置为1时才运行,当线程3满足运行条件被执行时,将事件集中序号1、3、29所在位置的事件的bit置为0。在“或”类型
事件等待机制中,当线程等待的多个事件中任一事件被触发时,线程将会停止等待继续执行,并将事件对象中事件记录变量的对应bit位清除。如图1c所示,线程1将事件集中序号为29所在位置的事件的bit置为1,线程2的事件触发条件是or,也就是“或”类型,当线程2中的序号为1或29的任意一个事件的bit被置为1时,线程2即可被执行,由于图1c中触发线程2运行的是序号为29所在位置的事件,当线程2被执行时,将事件集中序号为29所在位置的事件的bit置为0。
37.相关技术中存在的问题可通过以下场景进行说明:线程1等待事件1、2、3,并且等待挂起线程的行为位于循环体中,线程2等待事件1、2、4,当线程1等待的事件得到满足后需要清除事件集中对应事件bit位1、2、3,随后事件4被触发,正常逻辑下线程2应当得到满足的事件,但由于事件1、2已被线程1清除,使得线程2需要继续等待事件1、2重新触发。
38.为了解决上述实时系统中由于共用事件集导致某个线程等待事件满足后清除事件对其他等待事件与该线程等待事件重合的线程产生影响的问题,本技术实施例提供了一种实时操作系统中伴随型事件同步机制,以下详细说明。
39.本技术实施例所提供的线程的处理方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图2示出了一种用于实现线程的处理方法的计算机终端的硬件结构框图。如图2所示,计算机终端20可以包括一个或多个(图中采用202a、202b,
……
,202n来示出)处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器204、以及用于通信功能的传输模块206。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端20还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
40.应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端20中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
41.存储器204可用于存储应用软件的软件程序以及模块,如本技术实施例中的线程的处理方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器204内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的线程的处理方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端20。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
42.传输模块206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端20的通信供应商提供的无线网络。在一个实例中,传输模块206包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块206可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
43.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机终端20的用户界面进行交互。
44.此处需要说明的是,在一些可选实施例中,上述图2所示的计算机终端可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图2仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机终端中的部件的类型。
45.在上述运行环境下,本技术实施例提供了一种线程的处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
46.图3是根据本技术实施例的一种线程的处理方法的流程图,如图3所示,该方法包括如下步骤:
47.步骤s302,获取共用事件集下发的事件状态信息。
48.步骤s304,将事件状态信息同步至订阅事件集,其中,事件状态信息中包括多个事件的事件状态。
49.步骤s306,在订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行目标线程,其中,目标线程与订阅事件集具有映射关系。
50.在上述步骤s302至步骤s306中,共用事件集用于存储事件状态信息,为了使得当共用事件集中的事件状态满足某一线程的运行条件时,不修改共用事件集中的事件状态信息,本技术实施例通过将共用事件集中的事件状态信息同步至订阅事件集中,订阅事件集在线程发起事件订阅后才会生成,且线程与订阅事件集具有映射关系,由于订阅事件集中的事件状态信息与共用事件集中的事件状态信息是一致的,因此当订阅事件集中的事件状态满足对应的线程的运行条件的情况下,即可运行线程,该线程运行后仅会修改与其对应的订阅事件集中的事件状态,而不会修改共用事件集中的事件状态,因而不会影响其他线程的运行。
51.在本技术实施例中,通过获取共用事件集下发的事件状态信息;将事件状态信息同步至订阅事件集,其中,事件状态信息中包括多个事件的事件状态;在订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行目标线程,其中,目标线程与订阅事件集具有映射关系,达到了通过订阅事件集与线程关联,在线程的事件得到满足后仅需清除对应的订阅事件集中的事件标记的目的,从而实现了不影响其他线程的技术效果,进而解决了实时系统中由于共用事件集导致某个线程等待事件满足后清除事件,对其他等待事件与该线程等待事件重合的线程产生影响的技术问题。
52.在上述线程的处理方法中的步骤s304中,将事件状态信息同步至订阅事件集,具体包括如下步骤:识别共用事件集中的事件状态信息是否发生变更;在共用事件集中的事件状态信息发生变更的情况下,获取共用事件集中的更新后的事件状态信息,并将更新后的事件状态信息同步至订阅事件集。
53.在本技术实施例中,由于需要将共同事件集中的事件状态信息同步至订阅事件集中,因此需要确定共用事件集中的事件状态信息,也即在共用事件集中的事件状态信息发生变更的情况下,将更新后的共用事件集中的事件状态信息同步至订阅事件集中,从而保
证订阅事件集在共用事件集发生更新的情况下,及时与共用事件集中的事件状态信息保持一致,进而在订阅事件集中的事件状态满足线程的运行条件的情况下,及时运行线程。
54.在上述线程的处理方法中的步骤s304中,将事件状态信息同步至订阅事件集,具体包括如下步骤:判断共用事件集中的事件状态信息在预设时间间隔内是否发生变更;在共用事件集中的事件状态信息在预设时间间隔内没有发生变更的情况下,获取共用事件集中的事件状态信息;将共用事件集中的事件状态信息同步至订阅事件集。
55.在本技术的一些实施例中,等待线程被挂载在等待队列中,等待队列可以包括多个等待线程,当一个订阅事件集对应一个等待队列,确定订阅事件集中的事件状态是否满足等待队列中排在最前面的第一线程的运行条件,当此时订阅事件集中的事件状态满足第一线程的运行条件,第一线程运行后修改订阅事件集中的事件状态,在这种情况下,如果共用事件状态在预设时间间隔内未发生变化的情况下,该等待队列中的其他与第一线程有重叠事件的线程将因为该重叠事件的事件状态被清零而无法运行,因此,为解决上述问题,当共用事件集中的事件状态信息在预设时间间隔内未发生变更的情况下,为保证等待队列中其他线程的正常运行条件判断,需再次获取共用事件集中的事件状态信息,并将共用事件集中的事件状态信息同步至订阅事件集。
56.在上述线程的处理方法中的步骤s306中,在以下情况下确定订阅事件集中的事件状态信息满足目标线程的运行条件:获取目标线程的运行条件指示的目标事件和运行逻辑;在订阅事件集中的事件状态信息中确定目标事件的事件状态;在运行逻辑为第一逻辑,且目标事件的事件状态均为已触发的情况下,确定订阅事件集中的事件状态信息满足目标线程的运行条件,其中,第一逻辑为逻辑与;在运行逻辑为第二逻辑,且目标事件中的任意一个事件状态为已触发的情况下,确定订阅事件集中的事件状态信息满足目标线程的运行条件,第二逻辑为逻辑或。
57.在本技术实施例中,在确定订阅事件集中的事件状态信息是否满足目标线程的运行条件时,需先获取目标线程的运行条件指示的目标事件和运行逻辑。
58.当运行逻辑为第一逻辑,也即逻辑与时,以图4a为例进行解释说明。在图4a中,目标线程为线程3,线程3的运行条件是序号1、3、29所在位置的事件的bit均被置为1,目标事件即序号1、3、29所在位置的事件,由于线程3的运行逻辑为逻辑与(and),且订阅事件集中目标事件的事件状态均为已触发,此时订阅事件集中的事件状态信息满足线程3的运行条件。
59.当运行逻辑为第二逻辑,也即逻辑或时,以图4b为例进行解释说明。在图4b中,目标线程为线程2,线程2的运行条件是序号1或29所在位置的事件的bit被置为1,目标事件即序号1或29所在位置的事件,由于线程2的运行逻辑为逻辑或(or),且订阅事件集中序号29所在位置的事件被触发,此时订阅事件集中的事件状态信息满足线程2的运行条件。
60.在上述线程的处理方法中的步骤s306中,运行目标线程,具体包括如下步骤:确定与订阅事件集具有映射关系的目标线程的数量;在数量大于1的情况下,获取多个目标线程,并确定每个目标线程在线程队列中的执行顺序,其中,线程队列用于存储与订阅事件集相关联的线程;按照执行顺序依次运行多个目标线程。
61.在本技术实施例中,一个订阅事件集可以对应多个目标线程,该多个目标线程处于一个线程队列中,也即一个订阅事件集对应一个线程队列,在一个订阅事件集对应多个
目标线程的情况下,需按照线程队列中的线程的执行顺序,依次确定订阅事件集中的事件状态信息是否满足当前执行顺序下的线程的运行条件,若满足,则运行当前执行顺序下的目标线程,若不满足,则确定订阅事件集中的事件状态信息是否满足线程队列中的下一个线程的运行条件,从而实现在线程队列中依据执行顺序依次判断当前执行顺序下的线程所需的运行条件是否被订阅事件集满足。
62.在上述线程的处理方法中的步骤s306中,运行目标线程之后,方法还包括如下步骤:获取目标线程的运行条件指示的目标事件,其中,目标事件的事件状态为目标线程的运行条件;初始化订阅事件集中目标事件的目标事件状态信息,其中,目标事件状态信息为与目标事件对应的事件状态。
63.在本技术实施例中,在订阅事件集满足目标线程的运行条件的情况下,运行该目标线程,并将订阅事件集中与目标线程的运行条件相对应的目标时间的事件状态信息初始化。以上述图4a为例进行解释说明,订阅事件集中序号1、3、29所在位置的事件的bit被置为1,满足线程3对应的运行条件,线程3运行后,将订阅事件集中序号为1、3、29所在位置的事件状态信息初始化,即将订阅事件集中序号为1、3、29所在位置的事件的bit由1置为0。
64.在上述线程的处理方法中的步骤s306中,在运行目标线程之后,方法还包括:删除目标线程与订阅事件集之间的映射关系。
65.在本技术实施例中,由于线程不需要重复运行,在目标线程运行之后,可以将目标线程与其订阅的订阅事件集的映射关系删除。这样,当一个订阅事件集对应一个线程队列时,线程队列中当前执行顺序下的目标线程被执行且从线程队列中删除,也即删除了目标线程与订阅事件集的映射关系,当共用事件集和订阅事件集再次发生变更,才能根据订阅事件集中的事件状态信息判断是否满足线程队列中后面的线程的运行条件,若不删除映射关系,则在订阅事件集中的事件状态信息发生变更时,每次均需要判断线程队列的第一个线程的运行条件是否被满足,会影响其他进程的执行效率。
66.在上述线程的处理方法中的步骤s306中,方法还包括如下步骤:识别共用事件集中的事件状态信息是否均为被触发状态;在共用事件集中的事件状态信息均为被触发状态的情况下,初始化共用事件集中的事件状态信息。
67.在本技术实施例中,一般情况下,使用32或64位的整型数据存储32或64种事件状态,也即共用事件集和订阅事件集中最多只能存储32或64种事件状态信息,当共用事件集中的所有事件状态信息均被触发的情况下,也即共用事件集中的事件的bit均被置为1的情况下,当对应的线程均被运行后,需要初始化共用事件集中的事件状态信息,也即将共用事件集中的事件的bit均置为0。
68.本技术实施例提供的线程的处理方法,通过订阅事件集存储每个线程的需求及操作,线程等待事件得到满足后仅需要在当前线程对应的订阅事件集的事件数据中清除满足的事件标记,对于其他线程对应的订阅事件集中的数据不会产生任何影响。
69.图5是根据本技术实施例的一种线程的处理装置的结构图,如图5所示,该装置包括:
70.获取模块52,用于获取共用事件集下发的事件状态信息;
71.同步模块54,用于将事件状态信息同步至订阅事件集,其中,事件状态信息中包括多个事件的事件状态;
72.运行模块56,用于在订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行目标线程,其中,目标线程与订阅事件集具有映射关系。
73.在上述线程的处理装置中的同步模块中,该同步模块还用于识别共用事件集中的事件状态信息是否发生变更;在共用事件集中的事件状态信息发生变更的情况下,获取共用事件集中的更新后的事件状态信息,并将更新后的事件状态信息同步至订阅事件集。
74.在上述线程的处理装置中的同步模块中,该同步模块还用于判断共用事件集中的事件状态信息在预设时间间隔内是否发生变更;在共用事件集中的事件状态信息在预设时间间隔内没有发生变更的情况下,获取共用事件集中的事件状态信息;将共用事件集中的事件状态信息同步至订阅事件集。
75.在上述线程的处理装置中的运行模块中,该运行模块还用于在以下情况下确定订阅事件集中的事件状态信息满足目标线程的运行条件:获取目标线程的运行条件指示的目标事件和运行逻辑;在订阅事件集中的事件状态信息中确定目标事件的事件状态;在运行逻辑为第一逻辑,且目标事件的事件状态均为已触发的情况下,确定订阅事件集中的事件状态信息满足目标线程的运行条件,其中,第一逻辑为逻辑与;在运行逻辑为第二逻辑,且目标事件中的任意一个事件状态为已触发的情况下,确定订阅事件集中的事件状态信息满足目标线程的运行条件,第二逻辑为逻辑或。
76.在上述线程的处理装置中的运行模块中,该运行模块还用于确定与订阅事件集具有映射关系的目标线程的数量;在数量大于1的情况下,获取多个目标线程,并确定每个目标线程在线程队列中的执行顺序,其中,线程队列用于存储与订阅事件集相关联的线程;按照执行顺序依次运行多个目标线程。
77.在上述线程的处理装置中,该线程的处理装置还包括处理模块58,该处理模块用于获取目标线程的运行条件指示的目标事件,其中,目标事件的事件状态为目标线程的运行条件;初始化订阅事件集中目标事件的目标事件状态信息,其中,目标事件状态信息为与目标事件对应的事件状态。
78.在上述线程的处理装置中的处理模块中,该处理模块还用于删除目标线程与订阅事件集之间的映射关系。
79.在上述线程的处理装置中的处理模块中,该处理模块还用于识别共用事件集中的事件状态信息是否均为被触发状态;在共用事件集中的事件状态信息均为被触发状态的情况下,初始化共用事件集中的事件状态信息。
80.需要说明的是,图5所示的线程的处理装置用于执行图3所示的线程的处理方法,因此上述线程的处理方法中的相关解释说明也适用于该线程的处理装置,此处不再赘述。
81.本技术实施例还提供了一种电子设备,包括:存储器,用于存储程序指令;处理器,与存储器连接,用于执行实现以下功能的程序指令:获取共用事件集下发的事件状态信息;将事件状态信息同步至订阅事件集,其中,事件状态信息中包括多个事件的事件状态;在订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行目标线程,其中,目标线程与订阅事件集具有映射关系。
82.需要说明的是,上述电子设备用于执行图3所示的线程的处理方法,因此上述线程的处理方法中的相关解释说明也适用于该电子设备,此处不再赘述。
83.本技术实施例还提供了一种非易失性存储介质,该非易失性存储介质包括存储的
计算机程序,其中,该非易失性存储介质所在设备通过运行计算机程序执行以下线程的处理方法:获取共用事件集下发的事件状态信息;将事件状态信息同步至订阅事件集,其中,事件状态信息中包括多个事件的事件状态;在订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行目标线程,其中,目标线程与订阅事件集具有映射关系。
84.需要说明的是,上述非易失性存储介质用于执行图3所示的线程的处理方法,因此上述线程的处理方法中的相关解释说明也适用于该非易失性存储介质,此处不再赘述。
85.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
86.在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
87.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
88.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
89.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
90.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
91.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
技术特征:
1.一种线程的处理方法,其特征在于,包括:获取共用事件集下发的事件状态信息;将所述事件状态信息同步至订阅事件集,其中,所述事件状态信息中包括多个事件的事件状态;在所述订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行所述目标线程,其中,所述目标线程与所述订阅事件集具有映射关系。2.根据权利要求1所述的方法,其特征在于,将所述事件状态信息同步至订阅事件集,包括:识别所述共用事件集中的事件状态信息是否发生变更;在所述共用事件集中的事件状态信息发生变更的情况下,获取所述共用事件集中的更新后的事件状态信息,并将所述更新后的事件状态信息同步至所述订阅事件集。3.根据权利要求1所述的方法,其特征在于,将所述事件状态信息同步至订阅事件集,包括:判断所述共用事件集中的事件状态信息在预设时间间隔内是否发生变更;在所述共用事件集中的事件状态信息在预设时间间隔内没有发生变更的情况下,获取所述共用事件集中的事件状态信息;将所述共用事件集中的事件状态信息同步至所述订阅事件集。4.根据权利要求1所述的方法,其特征在于,在以下情况下确定所述订阅事件集中的事件状态信息满足目标线程的运行条件:获取所述目标线程的运行条件指示的目标事件和运行逻辑;在所述订阅事件集中的事件状态信息中确定所述目标事件的事件状态;在所述运行逻辑为第一逻辑,且所述目标事件的事件状态均为已触发的情况下,确定所述订阅事件集中的事件状态信息满足所述目标线程的运行条件,其中,所述第一逻辑为逻辑与;在所述运行逻辑为第二逻辑,且所述目标事件中的任意一个事件状态为已触发的情况下,确定所述订阅事件集中的事件状态信息满足所述目标线程的运行条件,所述第二逻辑为逻辑或。5.根据权利要求1所述的方法,其特征在于,运行所述目标线程,包括:确定与所述订阅事件集具有映射关系的目标线程的数量;在所述数量大于1的情况下,获取多个目标线程,并确定每个目标线程在线程队列中的执行顺序,其中,所述线程队列用于存储与所述订阅事件集相关联的线程;按照所述执行顺序依次运行所述多个目标线程。6.根据权利要求1所述的方法,其特征在于,运行所述目标线程之后,所述方法还包括:获取所述目标线程的运行条件指示的目标事件,其中,所述目标事件的事件状态为所述目标线程的运行条件;初始化所述订阅事件集中目标事件的目标事件状态信息,其中,所述目标事件状态信息为与所述目标事件对应的事件状态。7.根据权利要求1所述的方法,其特征在于,在运行所述目标线程之后,所述方法还包括:
删除所述目标线程与所述订阅事件集之间的映射关系。8.根据权利要求1所述的方法,其特征在于,所述方法还包括:识别所述共用事件集中的事件状态信息是否均为被触发状态;在所述共用事件集中的事件状态信息均为被触发状态的情况下,初始化所述共用事件集中的事件状态信息。9.一种线程的处理装置,其特征在于,包括:获取模块,用于获取共用事件集下发的事件状态信息;同步模块,用于将所述事件状态信息同步至订阅事件集,其中,所述事件状态信息中包括多个事件的事件状态;运行模块,用于在所述订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行所述目标线程,其中,所述目标线程与所述订阅事件集具有映射关系。10.一种电子设备,其特征在于,包括:存储器,用于存储程序指令;处理器,与所述存储器连接,用于执行实现以下功能的程序指令:获取共用事件集下发的事件状态信息;将所述事件状态信息同步至订阅事件集,其中,所述事件状态信息中包括多个事件的事件状态;在所述订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行所述目标线程,其中,所述目标线程与所述订阅事件集具有映射关系。11.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的计算机程序,其中,所述非易失性存储介质所在设备通过运行所述计算机程序执行权利要求1至8中任意一项所述的线程的处理方法。
技术总结
本申请公开了一种线程的处理方法、装置、电子设备及存储介质。其中,该方法包括:获取共用事件集下发的事件状态信息;将事件状态信息同步至订阅事件集,其中,事件状态信息中包括多个事件的事件状态;在订阅事件集中的事件状态信息满足目标线程的运行条件的情况下,运行目标线程,其中,目标线程与订阅事件集具有映射关系。本申请解决了实时系统中由于共用事件集导致某个线程等待事件满足后清除事件,对其他等待事件与该线程等待事件重合的线程产生影响的技术问题。影响的技术问题。影响的技术问题。
技术研发人员:董乾钦 姚杰 王森 刘志勇 王浩 张菊 胡一智
受保护的技术使用者:浙江中控技术股份有限公司
技术研发日:2023.06.15
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/