CN114064268A - 一种消息处理方法、装置及设备 - Google Patents
一种消息处理方法、装置及设备 Download PDFInfo
- Publication number
- CN114064268A CN114064268A CN202111246190.1A CN202111246190A CN114064268A CN 114064268 A CN114064268 A CN 114064268A CN 202111246190 A CN202111246190 A CN 202111246190A CN 114064268 A CN114064268 A CN 114064268A
- Authority
- CN
- China
- Prior art keywords
- task
- merging
- subtask
- message
- subtasks
- 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/5061—Partitioning or combining of resources
-
- 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/5016—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 the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本说明书实施例提供了一种消息处理方法、装置及设备。所述方法包括:单片机操作系统将满足预设条件的多个子任务合并,获得合并任务;其中,合并任务可实现对应每个子任务的功能;为合并任务分配新的栈空间,并释放与合并任务对应的每个子任务的栈空间;接收目标消息;其中,目标消息中携带有处理目标消息的任务标识;在基于任务标识确定处理目标消息的任务为合并任务对应的第一子任务的情况下,运行合并任务,获得消息处理结果。利用本说明书实施例可以在内存资源紧缺的情况下,节省出内存来实现更多的功能和提升系统的稳定性,从而提高资源使用率。
Description
技术领域
本申请涉及控制技术领域,特别涉及一种消息处理方法、装置及设备。
背景技术
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入。由于在单片机应用系统中,单片机往往作为一个核心部件来使用,这样,单片机系统内存就会很容易的被使用完,从而使系统不稳定。因此,实际应用中对单片机系统内存的要求越来越高。
现有技术中,单片机在使用Freertos、RT-Thread等单片机操作系统时,会给每个任务分配栈空间。这种方式在内存资源紧缺的情况下,不仅无法实现更多功能,而且也无法保证系统的稳定性,从而降低资源使用率。
因此,业内亟需一种可以解决上述技术问题的技术方案。
发明内容
本说明书实施例提供了一种消息处理方法、装置及设备,可以在内存资源紧缺的情况下,节省出内存来实现更多的功能和提升系统的稳定性,从而提高资源使用率。
本说明书提供的一种消息处理方法、装置及设备是包括以下方式实现的。
一种消息处理方法,应用于单片机操作系统,所述单片机操作系统包括多个子任务,每个子任务预先分配有栈空间,所述方法包括:将满足预设条件的多个子任务合并,获得合并任务;其中,所述合并任务可实现对应每个子任务的功能;为所述合并任务分配新的栈空间,并释放与所述合并任务对应的每个子任务的栈空间;接收目标消息;其中,所述目标消息中携带有处理目标消息的任务标识;在基于所述任务标识确定处理目标消息的任务为所述合并任务对应的第一子任务的情况下,运行所述合并任务,获得消息处理结果。
一种消息处理装置,包括:合并模块,用于将满足预设条件的多个子任务合并,获得合并任务;其中,所述合并任务可实现对应每个子任务的功能;分配模块,用于为所述合并任务分配新的栈空间,并释放与所述合并任务对应的每个子任务的栈空间;接收模块,用于接收目标消息;其中,所述目标消息中携带有处理目标消息的任务标识;获得模块,用于在基于所述任务标识确定处理目标消息的任务为所述合并任务对应的第一子任务的情况下,运行所述合并任务,获得消息处理结果。
一种消息处理设备,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现本说明书实施例中任意一个方法实施例的步骤。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现本说明书实施例中任意一个方法实施例的步骤。
本说明书提供的一种消息处理方法、装置及设备。一些实施例中单片机操作系统可以将满足预设条件的多个子任务合并,获得合并任务,为合并任务分配新的栈空间,并释放与合并任务对应的每个子任务的栈空间,其中,合并任务可实现对应每个子任务的功能。还可以接收携带有处理目标消息的任务标识的目标消息,在基于任务标识确定处理目标消息的任务为合并任务对应的第一子任务的情况下,运行合并任务,获得消息处理结果。由于在将某几个子任务合并为一个任务时,无需对子任务对应的代码进行操作,从而可以提高处理效率。由于合并后的任务共用一个栈,且可以实现合并前子任务的功能,这样不仅可以达到节省内存的目的,而且可以在系统内存资源紧缺的情况下,保证系统的稳定性,实现更多功能,节约成本。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,并不构成对本说明书的限定。在附图中:
图1是本说明书提供的一种消息处理方法的一个实施例的流程示意图;
图2是本说明书提供的一种合并子任务的示意图;
图3是本说明书提供的一种消息处理装置的一个实施例的模块结构示意图;
图4是本说明书提供的一种消息处理服务器的一个实施例的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书中的一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例保护的范围。
下面以一个具体的应用场景为例对本说明书实施方案进行说明。具体的,图1是本说明书提供的一种消息处理方法的一个实施例的流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。
本说明书提供的一种实施方案可以应用于单片机操作系统,如Freertos、RT-Thread等。其中,Freertos是一个实时操作系统内核。Freertos作为一个轻量级的操作系统,功能主要包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,其可基本满足较小系统的需要。RT-Thread是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,具有极小内核、稳定可靠、简单易用、高度可伸缩、组件丰富等特点。当然,本说明书提供的实施方案还可以应用到包括单片机操作系统的设备中,如客户端、服务器等中。所述客户端可以包括终端设备,如智能手机、平板电脑等。所述服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式系统的服务器结构等。其中,所述单片机操作系统可以包括多个子任务,每个子任务可以预先分配有栈空间。
需要说明的是,下述实施例描述并不对基于本说明书的其他可扩展到的应用场景中的技术方案构成限制。具体的一种实施例如图1所示,本说明书提供的一种消息处理方法的一种实施例中,所述方法可以包括以下步骤。
S0:将满足预设条件的多个子任务合并,获得合并任务;其中,所述合并任务可实现对应每个子任务的功能。
其中,单片机操作系统中可以包括多个子任务(也可以称为task),单片机操作系统可以预先给每个task动态分配栈空间。栈空间可以用来为函数开辟栈帧以及存放局部变量。栈空间中数据的大小可以在编译时确定,数据的分配和释放也由编译器在函数进入和退出时插入指令完成,数据生命周期和函数一样。每个子任务对应有任务信息。其中,任务信息可以包括处理器(handler)、初始化函数、消息处理函数等。
一些实施例中,所述将满足预设条件的多个子任务合并前,可以包括:确定每个子任务的优先级;基于每个子任务的优先级,确定满足预设条件的子任务。
一些实施场景中,单片机操作系统中可以根据每个任务的功能、执行频繁程度、影响程度等为每个子任务设定优先级。其中,优先级可以是1级、2级、3级……等,1级的优先级最高,2级次之,依次类推。当然,上述只是进行示例性说明,优先级还可以通过其他方式表示,本说明书对此不做限定。
一些实施例中,所述满足预设条件的子任务可以包括:优先级相同的子任务;和/或,优先级相差预设级数的子任务。其中,预设级数可以根据实际场景进行设定,例如,可以是1、3等,本说明书对此不做限定。一些实施场景中,优先级相差预设级数的子任务可以包括基于实际性能优先级相差1级的子任务,还可以包括功能相同(或相似)、优先级相差的级数在2级内(包括2级)的子任务等。
例如一些实施场景中,单片机操作系统中包括子任务1、子任务2、子任务3、子任务4、子任务5,各个子任务的优先级依次为1、3、5、1、2,子任务1、子任务2、子任务5的功能相同。此时,若预设条件为优先级相同,则满足预设条件的子任务为子任务1、子任务4;若预设条件为功能相同、优先级相差的级数在2级内(包括2级)的子任务,则满足预设条件的子任务为子任务1、子任务2、子任务3、子任务5。需要说明的是,确定满足预设条件子任务时,优先以优先级高的子任务(如子任务1或子任务4)为基准进行判断,即优先以子任务1(或子任务4)为基准,判断其他子任务与子任务1之间是否满足预设条件,待判断完子任务1后,依次判断其他优先级的子任务与剩余子任务之间是否满足预设条件,直至判断完所有子任务,确定出满足预设条件的子任务。
一些实施场景中,确定出的满足预设条件的子任务可以包括一组或多组,每组中至少包括两个子任务。需要说明的是,本说明书实施例中以确定出的满足预设条件的子任务包括一组为例进行示例性说明,其他实施场景类似,可以相互参照,对此不做赘述。
一些实施例中,在确定出满足预设条件的子任务后,可以将满足预设条件的子任务合并为一个任务。
一些实施例中,所述将满足预设条件的多个子任务合并,可以包括:创建目标任务和合并空间;获取满足预设条件的每个子任务的任务信息;将每个子任务的任务信息记录至所述合并空间中;将所述目标任务和所述合并空间进行关联,获得合并任务。其中,目标任务可以理解为合并前预先创建的一个任务。合并空间可以用于记录满足预设条件的子任务的任务信息。任务信息至少可以包括:处理器(handler)、初始化函数、消息处理函数等。
本说明书实施例中,将目标任务和合并空间进行关联,这样,后续通过合并任务可以实现合并前多个子任务的功能。
S2:为所述合并任务分配新的栈空间,并释放与所述合并任务对应的每个子任务的栈空间。
一些实施例中,在获得合并任务后,可以为合并任务分配新的栈空间,并释放与合并任务对应的每个子任务的栈空间。
一些实施场景中,为合并任务分配新的栈空间时,可以从合并任务对应的每个子任务预先分配的栈空间中选择最大空间值,然后将该最大空间值对应的栈空间分配给合并任务,并释放与合并任务对应的每个子任务的栈空间。例如,合并任务对应3个子任务,3个子任务预先分配的栈空间分别为500字节、1000字节、2000字节,此时,可以将2000字节的栈空间分配给合并任务,从而节省500+1000字节。
一些实施场景中,为合并任务分配新的栈空间时,还可以从单片机操作系统当前剩余内存中为合并任务分配新的栈空间,并释放与合并任务对应的每个子任务的栈空间。
一些实施场景中,为合并任务分配新的栈空间时,可以先获取单片机操作系统当前剩余内存,判断当前剩余内存释放满足可以满足合并任务的运行要求。在确定当前剩余内存可以满足合并任务的运行要求的情况下,可以从单片机操作系统当前剩余内存中为合并任务分配新的栈空间,并释放与合并任务对应的每个子任务的栈空间;在确定当前剩余内容无法满足合并任务的运行要求的情况下,可以从合并任务对应的每个子任务预先分配的栈空间中选择最大空间值,然后将该最大空间值对应的栈空间分配给合并任务,并释放与合并任务对应的每个子任务的栈空间。
当然,上述只是进行示例性说明,为合并任务分配新的栈空间的方式不限于上述举例,所属领域技术人员在本申请技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
如图2所示,是本说明书提供的一种合并子任务的示意图。其中,单片机操作系统包括三个子任务分别为task1、task2、task3,预先分配的栈空间分别为栈1、栈2、栈3,task1和task2的优先级相同,此时,可以将task1和task2合并获得合并任务(即新Task),并为新Task分配新的栈空间(即新栈),同时,释放task1、task2的栈空间。
本说明书实施例中,通过灵活的配置某几个子任务合并为一个任务共用一个栈空间,不仅可以节省内存,而且可以在内存资源紧缺的情况下,利用节省出来的内存实现更多的功能和提升系统的稳定性。
S4:接收目标消息;其中,所述目标消息中携带有处理目标消息的任务标识。
一些实施例中,在为合并任务分配新的栈空间,并释放与合并任务对应的每个子任务的栈空间后,单片机操作系统可以接收目标消息。其中,目标消息中可以携带有处理目标消息的任务标识。目标消息可以是待处理消息。任务标识可以用于指示目标消息由哪个子任务来处理,或者用于指示目标消息是发送给哪个子任务的。任务标识可以是有数字、字母、字符等中一种或多种组成,本说明书对此不做限定。
S6:在基于所述任务标识确定处理目标消息的任务为所述合并任务对应的第一子任务的情况下,运行所述合并任务,获得消息处理结果。
一些实施例中,单片机操作系统在接收到目标消息后,可以根据目标消息中携带的任务标识判断处理该目标消息的子任务是哪个。
一些实施例中,在基于任务标识确定处理目标消息的任务为合并任务对应的第一子任务的情况下,可以运行合并任务,获得消息处理结果。其中,第一子任务可以为合并任务对应的多个子任务中任意一个。
一些实施例中,所述运行所述合并任务,可以包括:初始化所述合并任务。一些实施场景中,所述初始化所述合并任务,可以包括:执行所述合并任务对应的每个子任务的初始化函数。
本说明书实施例中,由于合并任务中记录了每个子任务对应的任务信息,所以在运行合并任务时,可以通过执行合并任务对应的各个子任务对应的初始化函数对合并任务进行初始化。
一些实施例中,所述在基于所述任务标识确定处理目标消息的任务为所述合并任务对应的第一子任务的情况下,运行所述合并任务,获得消息处理结果,可以包括:在基于所述任务标识确定处理目标消息的任务为所述合并任务对应的第一子任务的情况下,将目标消息发送给所述合并任务;从所述合并任务对应的栈空间中获取所述第一子任务对应的处理器;利用所述第一子任务对应的处理器将目标消息发送给所述第一子任务对应的消息处理函数;基于所述消息处理函数,获得消息处理结果。
例如一些实施场景中,当单片机操作系统基于接收到的消息中携带的任务标识,确定执行该消息的任务是合并任务对应的多个子任务中一个子任务时,单片机操作系统可以将消息发送给合并任务,再在合并任务中检索子任务的handler,进而基于handler将消息分发给子任务的消息处理函数进行处理,获得消息处理结果。
需要说明的是,一些实施场景中,当多个子任务合并后,合并任务在运行时,如果原先各子任务的事件处理在一个时间片轮询之内,则合并任务中对应的子任务的功能通常也在一个时间片轮询之内。
本说明书实施例,通过将各个子任务对应的任务信息记录在代码空间,然后与创建的目标任务进行关联,即可灵活快速的实现合并任务和分拆任务,无需对子任务对应的代码进行修改、删除等,从而可以在节省内存的同时,提高处理效率。
本说明书实施例,通过灵活配置某几个子任务合并为一个任务共用一个栈,不仅可以减少栈空间的使用,达到节省内存的目的,而且可以在单片机操作系统内存资源紧缺的情况下,保证系统的稳定性,实现更多功能,节约成本。
从以上的描述中,可以看出,本申请实施例中,单片机操作系统可以将满足预设条件的多个子任务合并,获得合并任务,为合并任务分配新的栈空间,并释放与合并任务对应的每个子任务的栈空间,其中,合并任务可实现对应每个子任务的功能。还可以接收携带有处理目标消息的任务标识的目标消息,在基于任务标识确定处理目标消息的任务为合并任务对应的第一子任务的情况下,运行合并任务,获得消息处理结果。由于在将某几个子任务合并为一个任务时,无需对子任务对应的代码进行操作,从而可以提高处理效率。由于合并后的任务共用一个栈,且可以实现合并前子任务的功能,这样不仅可以达到节省内存的目的,而且可以在系统内存资源紧缺的情况下,保证系统的稳定性,实现更多功能,节约成本。
当然,上述只是进行示例性说明,本说明书实施例不限于上述举例,所属领域技术人员在本申请技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参照即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
基于上述所述一种消息处理方法,本说明书一个或多个实施例还提供一种消息处理装置。所述的装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
具体地,图3是本说明书提供的一种消息处理装置的一个实施例的模块结构示意图,如图3所示,本说明书提供的一种消息处理装置可以包括:合并模块210,分配模块212,接收模块214,获得模块216。
合并模块210,可以用于将满足预设条件的多个子任务合并,获得合并任务;其中,所述合并任务可实现对应每个子任务的功能;
分配模块212,可以用于为所述合并任务分配新的栈空间,并释放与所述合并任务对应的每个子任务的栈空间;
接收模块214,可以用于接收目标消息;其中,所述目标消息中携带有处理目标消息的任务标识;
获得模块216,可以用于在基于所述任务标识确定处理目标消息的任务为所述合并任务对应的第一子任务的情况下,运行所述合并任务,获得消息处理结果。
本说明书实施例,可以在内存资源紧缺的情况下,节省出内存来实现更多的功能和提升系统的稳定性,还可以灵活的配置任务合并,从而减少栈空间的使用,达到节省内存的目的。
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书还提供一种消息处理设备的实施例,包括处理器及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时可以实现上述任意一项方法实施例。例如,所述指令被所述处理器执行时实现包括以下步骤:将满足预设条件的多个子任务合并,获得合并任务;其中,所述合并任务可实现对应每个子任务的功能;为所述合并任务分配新的栈空间,并释放与所述合并任务对应的每个子任务的栈空间;接收目标消息;其中,所述目标消息中携带有处理目标消息的任务标识;在基于所述任务标识确定处理目标消息的任务为所述合并任务对应的第一子任务的情况下,运行所述合并任务,获得消息处理结果。
需要说明的,上述所述的设备根据方法或装置实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图4是本说明书提供的一种消息处理服务器的一个实施例的硬件结构框图,该服务器可以是上述实施例中的消息处理装置或消息处理设备。如图4所示,服务器10可以包括一个或多个(图中仅示出一个)处理器100(处理器100可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器200、以及用于通信功能的传输模块300。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图4中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存、GPU,或者具有与图4所示不同的配置。
存储器200可用于存储应用软件的软件程序以及模块,如本说明书实施例中的消息处理方法对应的程序指令/模块,处理器100通过运行存储在存储器200内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器200可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器200可进一步包括相对于处理器100远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块300用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块300包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块300可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
本说明书提供的上述消息处理方法或装置实施例可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作系统的c++语言在PC端实现、linux系统实现,或其他例如使用android、iOS系统程序设计语言在智能终端实现,以及基于量子计算机的处理逻辑实现等。
需要说明的是说明书上述所述的装置、设备、系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照对应方法实施例的描述,在此不作一一赘述。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把部分模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。
本发明是参照根据本发明实施例的方法、装置、设备、系统的流程图和/或方框图来描述的。应理解可由计算机程序指令实现,可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (10)
1.一种消息处理方法,其特征在于,应用于单片机操作系统,所述单片机操作系统包括多个子任务,每个子任务预先分配有栈空间,所述方法包括:
将满足预设条件的多个子任务合并,获得合并任务;其中,所述合并任务可实现对应每个子任务的功能;
为所述合并任务分配新的栈空间,并释放与所述合并任务对应的每个子任务的栈空间;
接收目标消息;其中,所述目标消息中携带有处理目标消息的任务标识;
在基于所述任务标识确定处理目标消息的任务为所述合并任务对应的第一子任务的情况下,运行所述合并任务,获得消息处理结果。
2.根据权利要求1所述的方法,其特征在于,所述将满足预设条件的多个子任务合并前,包括:
确定每个子任务的优先级;
基于每个子任务的优先级,确定满足预设条件的子任务。
3.根据权利要求1所述的方法,其特征在于,所述满足预设条件的子任务包括:
优先级相同的子任务;和/或,
优先级相差预设级数的子任务。
4.根据权利要求1所述的方法,其特征在于,所述将满足预设条件的多个子任务合并,包括:
创建目标任务和合并空间;
获取满足预设条件的每个子任务的任务信息;
将每个子任务的任务信息记录至所述合并空间中;
将所述目标任务和所述合并空间进行关联,获得合并任务。
5.根据权利要求4所述的方法,其特征在于,所述任务信息至少包括:处理器、初始化函数、消息处理函数。
6.根据权利要求5所述的方法,其特征在于,所述运行所述合并任务,包括:
初始化所述合并任务;其中,所述初始化所述合并任务,包括:执行所述合并任务对应的每个子任务的初始化函数。
7.根据权利要求1所述的方法,其特征在于,所述在基于所述任务标识确定处理目标消息的任务为所述合并任务对应的第一子任务的情况下,运行所述合并任务,获得消息处理结果,包括:
在基于所述任务标识确定处理目标消息的任务为所述合并任务对应的第一子任务的情况下,将目标消息发送给所述合并任务;
从所述合并任务对应的栈空间中获取所述第一子任务对应的处理器;
利用所述第一子任务对应的处理器将目标消息发送给所述第一子任务对应的消息处理函数;
基于所述消息处理函数,获得消息处理结果。
8.一种消息处理装置,其特征在于,包括:
合并模块,用于将满足预设条件的多个子任务合并,获得合并任务;其中,所述合并任务可实现对应每个子任务的功能;
分配模块,用于为所述合并任务分配新的栈空间,并释放与所述合并任务对应的每个子任务的栈空间;
接收模块,用于接收目标消息;其中,所述目标消息中携带有处理目标消息的任务标识;
获得模块,用于在基于所述任务标识确定处理目标消息的任务为所述合并任务对应的第一子任务的情况下,运行所述合并任务,获得消息处理结果。
9.一种消息处理设备,其特征在于,包括处理器及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1-7中任意一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被执行时实现权利要求1-7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111246190.1A CN114064268A (zh) | 2021-10-26 | 2021-10-26 | 一种消息处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111246190.1A CN114064268A (zh) | 2021-10-26 | 2021-10-26 | 一种消息处理方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064268A true CN114064268A (zh) | 2022-02-18 |
Family
ID=80235474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111246190.1A Pending CN114064268A (zh) | 2021-10-26 | 2021-10-26 | 一种消息处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064268A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116401070A (zh) * | 2023-06-06 | 2023-07-07 | 昆山嘉提信息科技有限公司 | 一种多mcu的数据并行处理方法及装置 |
-
2021
- 2021-10-26 CN CN202111246190.1A patent/CN114064268A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116401070A (zh) * | 2023-06-06 | 2023-07-07 | 昆山嘉提信息科技有限公司 | 一种多mcu的数据并行处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9686141B2 (en) | Systems and methods for resource sharing between two resource allocation systems | |
CN110162413B (zh) | 事件驱动方法及装置 | |
CN107451147B (zh) | 一种kafka集群动态切换的方法和装置 | |
CN112000463B (zh) | 一种基于cuda的gpu资源分配方法、系统、终端及存储介质 | |
JP2015011716A (ja) | グリッドコンピューティングシステムの遊休リソースによるタスク実行 | |
CN108572845B (zh) | 分布式微服务集群的升级方法及相关系统 | |
CN115328663A (zh) | 基于PaaS平台进行资源调度的方法、装置、设备和存储介质 | |
CN112035238A (zh) | 任务调度处理方法、装置、集群系统及可读存储介质 | |
CN111930525A (zh) | Gpu资源使用方法、电子设备及计算机可读介质 | |
CN111666145A (zh) | 消息队列的消息处理方法、系统和计算机设备 | |
US20230037783A1 (en) | Resource scheduling method and related apparatus | |
CN112130960A (zh) | 一种轻量化移动边缘计算节点及构建方法 | |
US20240202024A1 (en) | Thread processing methods, scheduling component, monitoring component, server, and storage medium | |
CN108170417B (zh) | 一种在mesos集群中集成高性能的作业调度框架的方法和装置 | |
CN112988344A (zh) | 分布式批量任务调度方法、装置、设备及存储介质 | |
US11144359B1 (en) | Managing sandbox reuse in an on-demand code execution system | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
CN114064268A (zh) | 一种消息处理方法、装置及设备 | |
CN109388501B (zh) | 基于人脸识别请求的通信匹配方法、装置、设备及介质 | |
CN113301087B (zh) | 资源调度方法、装置、计算设备和介质 | |
CN114629960A (zh) | 资源调度方法、装置、系统、设备、介质和程序产品 | |
CN109819674B (zh) | 计算机存储介质、嵌入式调度方法及系统 | |
US9990240B2 (en) | Event handling in a cloud data center | |
US11861386B1 (en) | Application gateways in an on-demand network code execution system | |
CN115114022A (zh) | 对gpu资源进行使用的方法、系统、设备及介质 |
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 |