CN110825536B - 嵌入式实时操作系统中任务间的通信方法及装置 - Google Patents
嵌入式实时操作系统中任务间的通信方法及装置 Download PDFInfo
- Publication number
- CN110825536B CN110825536B CN201911054938.0A CN201911054938A CN110825536B CN 110825536 B CN110825536 B CN 110825536B CN 201911054938 A CN201911054938 A CN 201911054938A CN 110825536 B CN110825536 B CN 110825536B
- Authority
- CN
- China
- Prior art keywords
- task
- function
- request message
- linked list
- execution
- 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.)
- Active
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority 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/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- 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/543—Local
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了本申请实施例提供的嵌入式实时操作系统中任务间的通信方法及装置,该方法包括:第一任务将请求消息发送至第二任务的消息队列中,请求消息用于请求第二任务完成第一事件;第二任务将请求消息放置到第二任务的执行链表中;第二任务调用执行函数,获得第一事件的执行结果,并将执行结果发送至第一任务的消息队列中。即本申请,针对不同的任务请求,通过将任务请求对应的请求消息的发送、存储、执行等操作采用统一的代码实现,开发人员无需为每个任务请求编写通信代码,进而大大减少了软件开发者的工作量,解决了代码量大,开发周期长的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种嵌入式实时操作系统中任务间的通信方法及装置。
背景技术
在嵌入式领域,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(Real Time Operating System,RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。而Free RTOS(免费嵌入式实时操作系统)是一个迷你的实时操作系统内核,作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等。
在Free RTOS中,当需要多个任务间通信时,已有的嵌入式实时操作系统中任务间的通信方法,软件开发者需要完成的步骤较多,且其中可能会有许多冗余的步骤及代码,且代码耦合度高,导致开发时间较长,移植性差等问题。
发明内容
本申请实施例提供一种嵌入式实时操作系统中任务间的通信方法及装置。
第一方面,本申请实施例提供一种嵌入式实时操作系统中任务间的通信方法,包括:
第一任务将请求消息发送至第二任务的消息队列中,所述请求消息用于请求所述第二任务完成第一事件;
第二任务从所述消息队列中检测到请求消息后,将所述请求消息放置到所述第二任务的执行链表中;
所述第二任务检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至所述第一任务的消息队列中。
在第一方面的一种可能的实现方式中,所述请求消息包括执行结果的反馈信息;
若所述执行结果的反馈信息用于指示所述第二任务反馈所述执行结果,则所述方法还包括:所述第二任务向所述第一任务反馈所述执行结果。
在第一方面的一种可能的实现方式中,所述方法还包括:
所述第一任务将回调函数放置至所述第一任务的回调链表中,并为所述回调函数设置标识;
所述第一任务检测到消息队列中存在与所述回调函数的标识匹配的执行结果时,调用所述回调函数,获得所述回调结果。
在第一方面的一种可能的实现方式中,所述第一任务将请求消息发送至第二任务的消息队列中,包括:
所述第一任务采用阻塞式发送方式或非阻塞式发送方式将所述请求消息发送至第二任务的消息队列中。
在第一方面的一种可能的实现方式中,所述方法还包括:
所述第二任务创建多个第二功能,并将每个所述第二功能放置至所述第二任务的功能链表中。
在第一方面的一种可能的实现方式中,所述第一任务将请求消息发送至第二任务的消息队列中之前,所述方法还包括:
所述第一任务检测所述第二任务的功能链表中的各第二功能中是否具有处理第一事件的第一功能;
所述第一任务将请求消息发送至第二任务的消息队列中,包括:
所述第一任务在检测到所述第二任务的功能链表中具有所述第一功能时,将所述请求消息发送至所述第二任务的消息队列中。
在第一方面的一种可能的实现方式中,所述第二任务将所述请求消息放置到所述第二任务的执行链表中之前,所述方法还包括:
所述第二任务检测所述第二任务的功能链表中的各第二功能中是否具有处理所述第一事件的第一功能;
所述第二任务将所述请求消息放置到所述第二任务的执行链表中,包括:
所述第二任务在检测到所述第二任务的功能链表中具有所述第一功能时,将所述请求消息放置到所述第二任务的执行链表中。
在第一方面的一种可能的实现方式中,所述方法还包括:
所述第二任务为创建的每个所述第二功能设置优先级;
所述将所述请求消息放置到所述第二任务的执行链表中,包括:
所述第二任务根据所述请求消息的接收时间和优先级,将所述请求消息放置到所述第二任务的执行链表中,其中,所述请求消息的优先级为各所述第二功能中具有完成所述第一事件能力的第二功能所对应的优先级。
在第一方面的一种可能的实现方式中,所述方法还包括:
所述第二任务在执行完所述第一事件后,从所述执行链表中删除所述请求消息;和/或,
所述第二任务在检测到所述第二任务的功能链表中不具有完成所述第一事件能力的第二功能时,删除所述第二功能对应的数据;和/或,
所述第一任务在调用完所述回调函数后,从所述回调链表中删除所述回调函数;和/或,
系统删除任务在检测到所述第二任务或所述第一任务删除时,删除所述第一任务或所述第二任务对应的数据。
第二方面,本申请实施例提供一种嵌入式实时操作系统中任务间的通信装置,包括:
发送模块,用于将请求消息发送至第二任务的消息队列中,所述请求消息用于请求所述第二任务完成第一事件;
接收模块,用于从所述消息队列中检测到请求消息后,将所述请求消息放置到所述第二任务的执行链表中;
执行模块,用于检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至所述第一任务的消息队列中。
在第二方面的一种可能的实现方式中,所述请求消息包括执行结果的反馈信息;
若所述执行结果的反馈信息用于指示所述第二任务反馈所述执行结果,则所述装置还包括:响应模块,用于所述第二任务向所述第一任务反馈所述执行结果。
在第二方面的一种可能的实现方式中,所述装置还包括:
回调模块,用于将回调函数放置至所述第一任务的回调链表中,并为所述回调函数设置标识;并在检测到消息队列中存在与所述回调函数的标识匹配的执行结果时,调用所述回调函数,获得所述回调结果。
在第二方面的一种可能的实现方式中,所述发送模块,具体用于采用阻塞式发送方式或非阻塞式发送方式将所述请求消息发送至第二任务的消息队列中。
在第二方面的一种可能的实现方式中,所述装置还包括:
创建模块,用于创建多个第二功能,并将每个所述第二功能放置至所述第二任务的功能链表中。
在第二方面的一种可能的实现方式中,所述装置还包括:
第一检测模块,用于在发送模块将请求消息发送至第二任务的消息队列中之前,检测所述第二任务的功能链表中的各第二功能中是否具有处理第一事件的第一功能;
所述发送模块,具体用于在所述第一检测模块检测到所述第二任务的功能链表中具有所述第一功能时,将所述请求消息发送至所述第二任务的消息队列中。
在第二方面的一种可能的实现方式中,所述装置还包括:
第二检测模块,用于在接收模块将所述请求消息放置到所述第二任务的执行链表中之前,检测所述第二任务的功能链表中的各第二功能中是否具有处理所述第一事件的第一功能;
所述接收模块,具体用于在所述第二检测模块检测到所述第二任务的功能链表中具有所述第一功能时,将所述请求消息放置到所述第二任务的执行链表中。
在第二方面的一种可能的实现方式中,所述创建模块,还用于为创建的每个所述第二功能设置优先级;
所述接收模块,具体用于根据所述请求消息的接收时间和优先级,将所述请求消息放置到所述第二任务的执行链表中,其中,所述请求消息的优先级为各所述第二功能中具有完成所述第一事件能力的第二功能所对应的优先级。
在第二方面的一种可能的实现方式中,所述装置还包括:
清理模块,用于在所述第二任务执行完所述第一事件后,从所述执行链表中删除所述请求消息;和/或,
在所述第二任务检测到所述第二任务的功能链表中不具有完成所述第一事件能力的第二功能时,删除所述第二功能对应的数据;和/或,
在所述第一任务调用完所述回调函数后,从所述回调链表中删除所述回调函数;和/或,
在检测到所述第二任务或所述第一任务删除时,删除所述第一任务或所述第二任务对应的数据。
第三方面,本申请实施例提供一种电子设备,包括:
存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,具体用于执行如第一方面所述的嵌入式实时操作系统中任务间的通信方法。
第四方面,本申请实施例提供一种计算机存储介质,所述存储介质包括计算机指令,当所述指令被计算机执行时,使得所述计算机实现如权利要求第一方面所述的嵌入式实时操作系统中任务间的通信方法。
本申请实施例提供的嵌入式实时操作系统中任务间的通信方法及装置,通过第一任务将请求消息发送至第二任务的消息队列中,所述请求消息用于请求所述第二任务完成第一事件;第二任务从所述消息队列中检测到请求消息后,将所述请求消息放置到所述第二任务的执行链表中;所述第二任务检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至所述第一任务的消息队列中。即本申请实施例的方法,针对不同的任务请求,通过将任务请求对应的请求消息的发送、请求消息的存储以及请求消息的执行等操作采用统一的代码实现,开发人员无需为每个任务请求编写通信代码,进而大大减少了软件开发者的工作量,方便一致,实现其“通用”的特点,解决了代码量大,开发周期长的问题。
附图说明
图1为本申请实施例涉及的一种系统架构图;
图2为本申请实施例涉及的嵌入式实时操作系统中各任务的示意图;
图3为本申请实施例涉及的消息队列的示意图;
图4为本申请实施例提供的嵌入式实时操作系统中任务间的通信方法的流程图;
图5为本申请实施例提供的嵌入式实时操作系统中任务间的通信方法的流程图;
图6为本申请实施例涉及的一种消息队列示意图;
图7为本申请实施例涉及的一种执行链表示意图;
图8为本申请实施例涉及的另一种执行链表示意图;
图9为本申请实施例涉及的又一种执行链表示意图;
图10为本申请实施例提供的嵌入式实时操作系统中任务间的通信方法的流程图;
图11为本申请实施例提供的嵌入式实时操作系统中任务间的通信方法的流程图;
图12为本申请实施例提供的一种嵌入式实时操作系统中任务间的通信装置的示意图;
图13为本申请实施例提供的一种嵌入式实时操作系统中任务间的通信装置的示意图;
图14为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,首先对本申请涉及的相关技术进行介绍。
RTOS:是指当外界事件或数据产生时,能够接收并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是其主要特点。
图1为本申请实施例涉及的一种系统架构图,需要说明的是本申请实施例涉及的嵌入式实时操作系统包括但不限于FreeRTOS。如图1所示,该FreeRTOS搭载在处理器上,例如搭载在微控制单元(Microcontroller Unit,MCU)上,该FreeRTOS包括多个任务,例如任务A、任务B、任务C等。FreeRTOS可以与电子设备中的一些硬件进行数据交互,例如可以与屏幕、温度传感器、GPS等硬件进行数据交互。
图2为本申请实施例涉及的嵌入式实时操作系统中各任务的示意图。
任务:是嵌入式操作系统的运行单元,每个任务相互独立,系统可创建多个任务,用来处理不同的事务。
在嵌入式设备中,每个任务可能控制着不同的硬件模块,如任务A负责在屏幕中显示设备的运行信息,任务B负责从温度模块中获得设备的当前温度,任务C负责从键盘读取用户输入的指令等。每个任务一直运行,处理各自的事务,相互独立。
任务间通信:由于各任务之间相互独立地运行,大多数情况下为了系统安全地运行,任务之间不能直接操作对方的内存等资源,这时候就需要通过某种方式进行任务之间的数据传递,这一种数据在任务间传递的过程就是任务间通信。
如图2中,任务A需要在屏幕显示当前设备温度,但任务A没有直接获得温度值的能力,这时候任务A通过一种任务间的通信方式,告诉任务B现在需要知道当前设备的温度值,任务B也就可以在获得了温度值后通过任务间的通信方式,告诉任务A当前设备的温度值。这样任务A和任务B之间就进行了一轮通信。
图3为本申请实施例涉及的消息队列的示意图。
消息队列:FreeRTOS系统提供的一种任务间通信的方式,任意任务可以向消息队列中放入自己想要传递给其他任务的数据(称之为“消息”),其他任务查询到队列中存在消息则可以将消息读取出来,从而实现任务间的数据传递。例如,任务A将数值10放置至消息队列中,任务C将数值20放置到消息队列中,任务B可以从消息队列中读取出数值10或20。
请求处理机制,即实现一个任务请求另一个任务完成某种操作时的一系列处理方式,其中需要进行任务间的通信等。
应理解,在本发明实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。
另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
下面以具体的示例,对本申请实施例提供的嵌入式实时操作系统中任务间的通信方法进行详细介绍。
图4为本申请实施例提供的嵌入式实时操作系统中任务间的通信方法的流程图,如图4所示,本申请实施例的方法包括:
S101、第一任务将请求消息发送至第二任务的消息队列中,所述请求消息用于请求所述第二任务完成第一事件。
本申请实施例的执行主体为嵌入式实时操作系统,该嵌入式实时操作系统可以为如图1所示的FreeRTOS,还可以是其他结构的嵌入式实时操作系统,本申请实施例对此不做限制。
本申请实施例提供一种嵌入式实时操作系统中各任务之间的通信方法,本申请实施例以嵌入式实时操作系统中的第一任务和第二任务为例对本申请实施例涉及的通信方法进行详细说明。
举例说明,第一事件为获取电子设备的温度值,但是第一任务没有完成第一事件的功能,即第一任务无法直接获得电子设备的温度值。而第二任务具有获得电子设备的温度值的功能。这样,第一任务可以向第二任务发送请求消息,以请求第二任务获得电子设备的温度值。
在实际使用时,除了第一任务向第二任务发送请求消息外,其他的任务也可能向第二任务发送请求消息。因此,为了实现第二任务对各任务发送的请求消息的有序执行,则第二任务具有消息队列,第一任务可以将请求消息发送至第二任务的消息队列中。
S102、第二任务从所述消息队列中检测到请求消息后,将所述请求消息放置到所述第二任务的执行链表中。
S103、所述第二任务检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至所述第一任务的消息队列中。
本申请实施例,为了进一步提高请求消息的执行有序性,本申请实施例采用执行链表。在将请求消息发送至第二任务的消息队列中后,第二任务在检测到消息队列中有请求消息时,将请求消息挂载在第二任务的执行链表中。
这样,第二任务在检测到所述执行链表中的请求消息后,调用第一事件对应的执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至第一任务的消息队列中。
为了清楚说明本申请实施例的技术效果,对现有的任务间通信方法进行简单介绍。假设以任务1、任务2和任务3为例,其中任务1请求任务2完成事件1,任务2请求任务3完成事件2。现有技术,开发者要为任务1和任务2编写请求消息的发送、请求消息的缓存和请求消息的执行等操作的代码,同时,开发者还要为任务2和任务3编写请求消息的发送、请求消息的缓存和请求消息的执行等操作的代码。也就是说,现有技术需要开发者为每个任务编写通信代码,其工作量大,开发周期长。
为了解决上述技术问题,本申请实施例,针对不同任务的请求消息,将重复的操作统一处理,例如将请求消息的发送、请求消息的缓存和请求消息的执行等操作,均使用统一的代码实现,并对开发者不可见,开发者在进行任务间通信代码编写时,直接调用上述统一的代码,即可实现请求消息的发送、请求消息的缓存和请求消息的执行等操作,不需要为每个任务分别编写通信代码,大大减少软件开发者的工作量,方便一致,实现其“通用”的特点。
另外,本申请实施例中任务请求的所有操作都在对应的任务中执行,如请求消息的执行等,不会操作其他任务的内存资源,从而保证线程安全。
本申请实施例提供的嵌入式实时操作系统中任务间的通信方法,通过第一任务将请求消息发送至第二任务的消息队列中,所述请求消息用于请求所述第二任务完成第一事件;第二任务从所述消息队列中检测到请求消息后,将所述请求消息放置到所述第二任务的执行链表中;所述第二任务检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至所述第一任务的消息队列中。即本申请实施例的方法,针对不同的任务请求,通过将任务请求对应的请求消息的发送、请求消息的存储以及请求消息的执行等操作采用统一的代码实现,开发人员无需为每个任务请求编写通信代码,进而大大减少了软件开发者的工作量,方便一致,实现其“通用”的特点,解决了代码量大,开发周期长的问题。
图5为本申请实施例提供的嵌入式实时操作系统中任务间的通信方法的流程图,在上述实施例的基础上,如图5所示,本申请实施例的方法包括:
S201、第二任务创建多个第二功能,并将每个所述第二功能放置至所述第二任务的功能链表中。
可选的,第二任务还为每个第二功能设置优先级。
需要说明的是,本申请实施例中第二任务具有处理不同事件的功能,这样第二任务可以根据自身的能力,创建多个第二功能,并将每个第二功能放置到如表1所示的功能链表中。可选的,第二任务还为每一个第二功能设置优先级。
表1
如表1所示,第二任务具有n个第二功能,其中n为大于等于1的正整数,每个第二功能可以处理不同的事件,例如第二功能1可以处理事件a,第二功能2,可以处理事件b。为了控制第二任务执行上述各第二功能的选后顺序,则为每一个第二功能设置一个优先级。
S202、第一任务指定第二任务和第一事件。
S203、第一任务检测所述第二任务的功能链表中的各第二功能中是否具有执行第一事件的第一功能。
在实际使用中,系统中的各任务可以查看第二任务的功能链表。这样,第一任务检测第二任务的功能链表中的各第二功能中存在具有执行第一事件的第二功能时,将具有执行第一事件的第二功能确定为第一功能。
S204、第一任务在检测到所述第二任务的功能链表中具有第一功能时,生成请求消息,并将所述请求消息发送至所述第二任务的消息队列中。
若第一任务检测第二任务的功能链表中的各第二功能中不存在具有执行第一事件的第一功能时,请求发送结束。
若第一任务检测第二任务的功能链表中的各第二功能中存在具有执行第一事件的第一功能时,生成请求消息,并将请求消息发送至第二任务的消息队列中。
其中第一任务生成请求消息的方式至少包括如下几种:
在一种示例中,第一任务为第一事件配置一标识,该标识可以作为该请求消息的标识,用于标识该请求消息,并使用该请求消息的标识和第一事件组成请求消息。
在又一种示例中,若第一任务指定回调函数,则第一任务根据回调函数和请求消息的标识,生成所述请求消息。
本申请中,第二任务对应一个消息队列,各任务可以将请求消息发送至第二任务的消息队列中,如图6所示。
如图6所示,上述各请求消息在消息队列中可以以生成时间为顺序进行排序。
S205、第二任务从所述消息队列中检测到请求消息后,检测所述第二任务的功能链表中是否具有第一功能。
由于在第一任务将请求消息发送给第二任务的过程中,第二任务对应的处理第一事件的功能可能被删除,因此,在第二任务执行第一事件之前,先判断当前时刻自己是否具有处理第一事件的第一功能。
S206、第二任务在检测到所述第二任务的功能链表中具有第一功能时,将所述请求消息放置到所述第二任务的执行链表中。
若第二任务在检测到所述第二任务的功能链表中不具有第一功能时,结束操作,并可以向第一任务发送处理失败的信息。
若第二任务在检测到所述第二任务的功能链表中具有第一功能时,将所述请求消息放置到所述第二任务的执行链表中。
在一种可能的实现方式中,S206、第二任务将所述请求消息放置到所述第二任务的执行链表中,可以包括:
S206a、第二任务根据所述请求消息的接收时间和优先级,将所述请求消息放置到所述第二任务的执行链表中。
其中,所述请求消息的优先级为各所述第二功能中具有完成所述第一事件能力的第二功能所对应的优先级。
具体的,上述请求消息的优先级可以为表1中对应的各第二功能的优先级,例如,该请求消息所指示的第一事件是由表1中的第二功能2来完成,而第二功能2的优先级为2,因此可以确定该请求消息的优先级为2。
可选的,请求消息中携带了上述优先级,可选的,第二任务可以通过查询表1获得请求消息的优先级。
第二任务根据请求消息的优先级和/或接收时间,将请求消息挂载在执行链表中。该执行链表可以理解为单链表,第二任务可以根据请求消息在执行链表中的排列顺序,依次执行各请求消息。
其中,上述第二任务接收请求消息的时间可以理解为第一任务将请求消息发送到第二任务的消息队列中的时间。
在一种示例中,参照图6所示,假设图6中各任务对应的请求消息是按照请求消息的接收时间排序的,其中从请求消息1至请求消息n其接收时间递减。例如,请求消息1是前10s接收的,请求消息2为前5s接收的,请求消息n为前1s接收的。这样,可以根据各请求消息的接收时间,将请求消息放置到执行链表中,具体如图7所示。
在另一种示例中,假设图6中请求消息2的优先级高于请求消息1的优先级,请求消息2的优先级低于请求消息n的优先级。这样,可以根据各请求消息的优先级,将请求消息放置到执行链表中,具体如图8所示。
在另一种示例中,假设图6中请求消息1是前10s接收的,请求消息2为前5s接收的,请求消息n为前1s接收的,但是请求消息2的优先级高于请求消息1,请求消息1的优先级高于请求消息n,这样先根据请求消息的优先级对各请求消息进行排序,在请求消息的优先级一致时,再根据请求消息的接收时间对优先级一致的请求消息进行排序,并将排序好的请求消息放置到执行链表中,具体如图9所示。
S207、第二任务检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至所述第一任务的消息队列中。
参照上述图7至图9所示,将请求消息放置到执行链表中后,在检测到执行链表中有请求消息时,从执行链表中获取该请求消息,并调用执行函数,执行该请求消息,获得第一事件的执行结果,并将执行发送至所述第一任务的消息队列中。
在一些实施例中,第二任务释放所述执行链表中所有未开始执行或未执行完成或已执行的请求消息相关的内存。
本申请实施例,第二任务创建多个第二功能,并将每个所述第二功能放置至所述第二任务的功能链表中,这样第一任务向第二任务发送请求消息之前,先判断第二任务是否具有执行第一事件的功能,若有,则将请求消息发送给第二任务。第二任务在接收到请求消息后,在判断自身具有执行第一事件的功能后,调用执行函数,获得该第一事件的执行结果,进而保证了第一任务和第二任务之间通信的可靠性和有效性。
图10为本申请实施例提供的嵌入式实时操作系统中任务间的通信方法的流程图,在上述实施例的基础上,如图10所示,本申请实施例的方法包括:
S301、第一任务指定第二任务、第一事件和发送请求消息的发送方式。
请求消息的发送方式包括阻塞式发送方式或非阻塞式发送方式。
阻塞发送方式为,第一任务将请求消息发送至第二任务的消息队列后,一直等待该请求消息的处理结果被反馈后,才退出请求发送的API函数。
非阻塞发送方式为,第一任务将请求消息发送至第二任务的消息队列后,在发送成功后即可退出请求发送的API函数,而不等待该请求消息的处理结果。
S302、第一任务检测所述第二任务的功能链表中的各第二功能中是否具有执行第一事件的第一功能。
S303、第一任务在检测到所述第二任务的功能链表中具有第一功能时,采用阻塞式发送方式或非阻塞式发送方式将所述请求消息发送至第二任务的消息队列中。
若第一任务指示返回所述第一事件的执行结果,则第一任务采用阻塞发送方式将所述请求消息发送至所述第二任务对应的消息队列中。
若第一任务指示不返回所述第一事件的执行结果,则采用非阻塞发送方式将所述请求消息发送至所述第二任务对应的消息队列中。
需要说明的是,采用上述阻塞发送方式,在等待执行结果时,第二任务对应的消息队列仍会接收其他任务发生的请求消息,进而可以防止任务相互阻塞。
S304、第二任务在检测到消息队列中具有请求消息后,检测所述第二任务的功能链表中是否具有第一功能。
S305、第二任务在检测到所述第二任务的功能链表中具有第一功能时,将所述请求消息放置到所述第二任务的执行链表中。
S306、第二任务检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至所述第一任务的消息队列中。
上述S304至S306的具体执行过程参照上述S205至S207的具体描述,在此不再赘述。
在一些实施例中,若上述S301中第一任务指定是否反馈执行结果时,则请求消息包括执行结果的反馈信息,此时本申请实施例的方法还包括:
S307、第二任务向所述第一任务反馈所述执行结果。
可选的,上述是否需要反馈执行结果,可以通过发送方式来隐性指示,也可以通过在请求消息中携带反馈信息,来显性指示第二任务是否需要向第一任务反馈执行结果。例如,请求消息携带1,表示需要第二任务向第一任务反馈执行结果,若请求消息携带0,则表示第一任务不需要第二任务反馈执行结果。
本申请实施例,第一任务可以采用阻塞式发送方式或非阻塞式发送方式将请求消息发送至第二任务的消息队列中,丰富了请求消息的发送方式。
图11为本申请实施例提供的嵌入式实时操作系统中任务间的通信方法的流程图,在上述实施例的基础上,如图11所示,本申请实施例的方法包括:
S401、第一任务指定第二任务、第一事件、回调函数以及发送请求消息的发送方式。
具体的,第一任务指定第一事件,例如第一任务指定第一事件为获取设备1的温度,以及从多个任务中指定用于完成第一事件的第二任务,同时,第一任务还指定所使用的回调函数,以及发送请求消息的发送方式。
S402、第一任务将回调函数放置至所述第一任务的回调链表中,并为所述回调函数设置标识。
S403、第一任务检测所述第二任务的功能链表中的各第二功能中是否具有执行第一事件的第一功能。
S404、第一任务在检测到所述第二任务的功能链表中具有第一功能时,采用非阻塞式发送方式将所述请求消息发送至所述第二任务的消息队列中。
S405、第二任务在检测到消息队列中包括请求消息时,检测所述第二任务的功能链表中是否具有第一功能。
可选的,第二任务检测到该第二任务的功能链表中不具有完成第一事件能力的第二功能时,删除该功能链表中的各第二功能对应的数据,以释放内存。
S406、第二任务在检测到所述第二任务的功能链表中具有第一功能时,将所述请求消息放置到所述第二任务的执行链表中。
S407、第二任务检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至所述第一任务的消息队列中。
S408、第一任务检测到消息队列中存在与所述回调函数的标识匹配的执行结果时,调用所述回调函数,获得所述回调结果。
本申请实施例的第一任务具有回调链表,当第一任务指定回调函数后,则将回调函数记录到第一任务的回调链表中,并为其分配唯一的标识。
可选的,上述回调函数的标识可以与请求消息的标识一致。
这样,第一任务可以实时监测其的消息队列,判断该消息队列中是否存在标识与回调函数的标识匹配的执行结果。若第一任务检测到消息队列中存在与所述回调函数的标识匹配的执行结果时,第一任务调用回调链表中的回调函数,获得回调结果。
S409、在调用完所述回调函数后,第一任务删除所述回调函数相关的内存。
为了及时释放内存,则在检测到回调函数被调用后,第一任务删除该回调函数相关的内存。
本申请实施例,将回调过程模块化,使得处理器根据上述方式可以实现不同的回调处理,避免编码开发者的重复编程。
在一些实施例中,系统删除任务在检测到所述第二任务或所述第一任务删除时,删除所述第一任务或所述第二任务对应的数据。
在一些实施例中,第二任务在检测到所述第二任务的功能链表中不具有第二功能时,删除所述第二功能对应的数据。
由上述各实施例可做,本申请实施例涉及的第一任务发送给第二任务的请求可以包括如下几种:
第一种,仅发送请求,不需要获取请求的处理结果,也不需要第二任务响应任何东西。由于不等待任何东西,所以采用非阻塞方式发送;
第二种,需要第二任务返回请求的处理结果,但不需要响应其他额外的数据;
第三种,需要第二任务返回请求的处理结果,且需要响应额外的数据;
第四种,发送请求时额外传递一些参数(例如第一事件为获取温度,则该参数包括设备标识、温度值对应的时刻等)给第二任务,不需要获取请求的处理结果,也不需要第二任务响应任何东西。
第五种,发送请求时额外传递一些参数给第二任务,需要第二任务返回请求的处理结果,但不需要响应其他额外的数据;
第六种,发送请求时额外传递一些参数给第二任务,需要第二任务返回请求的处理结果,且需要响应额外的数据;
第七种,发送请求时额外传递一些数据给第二任务,不需要获取请求的处理结果,也不需要第二任务响应任何东西。
第八种,发送请求时额外传递一些数据给第二任务,需要第二任务返回请求的处理结果,但不需要响应其他额外的数据;
第九种,发送请求时额外传递一些数据给第二任务,需要第二任务返回请求的处理结果,且需要响应额外的数据;
第十种,发送请求时额外传递一些数据和参数给第二任务,不需要获取请求的处理结果,也不需要第二任务响应任何东西。
第十一种,发送请求时额外传递一些数据和参数给第二任务,需要第二任务返回请求的处理结果,但不需要响应其他额外的数据;
第十二种,发送请求时额外传递一些数据和参数给第二任务,需要第二任务返回请求的处理结果,且需要响应额外的数据;
需要说明的是,上述的参数可以理解为一个具有特定含义的数值,例如设备的标识等;数据可以理解为任意数量的一组数组,例如在回调的过程中回调函数会使用到的数据等。
本申请实施例的请求消息,可自由组合裁剪。如,是否需要回调、是否需要获得执行结果等、是否需要返回数据、阻塞或非阻塞发送、是否给功能创建者传递数据等;从简单的任务间数据传递到执行复杂的操作,适应各种应用场景,通用性强。
图12为本申请实施例提供的一种嵌入式实时操作系统中任务间的通信装置的示意图,如图12所示,该装置100包括:
发送模块110,用于将请求消息发送至第二任务的消息队列中,所述请求消息用于请求所述第二任务完成第一事件;
接收模块120,用于从所述消息队列中检测到请求消息后,将所述请求消息放置到所述第二任务的执行链表中;
执行模块130,用于检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至所述第一任务的消息队列中。
本申请实施例的嵌入式实时操作系统中任务间的通信装置,可以用于执行上述嵌入式实时操作装置中任务间的通信方法的技术方案,其实现原理和技术效果类似,此处不再赘述。
图13为本申请实施例提供的一种嵌入式实时操作系统中任务间的通信装置的示意图,在上述实施例的基础上,本申请实施例的请求消息包括执行结果的反馈信息,若所述执行结果的反馈信息用于指示所述第二任务反馈所述执行结果,如图13所示,该装置100还包括:
响应模块140,用于所述第二任务向所述第一任务反馈所述执行结果。
在一种可能的实现方式中,本申请实施例的装置还包括:
回调模块150,用于将回调函数放置至所述第一任务的回调链表中,并为所述回调函数设置标识;并在检测到消息队列中存在与所述回调函数的标识匹配的执行结果时,调用所述回调函数,获得所述回调结果。
在一种可能的实现方式中,上述发送模块110,具体用于采用阻塞式发送方式或非阻塞式发送方式将所述请求消息发送至第二任务的消息队列中。
在一种可能的实现方式中,本申请实施例的装置还包括:
创建模块160,用于创建多个第二功能,并将每个所述第二功能放置至所述第二任务的功能链表中。
在一种可能的实现方式中,本申请实施例的装置还包括:
第一检测模块170,用于在发送模块110将请求消息发送至第二任务的消息队列中之前,检测所述第二任务的功能链表中的各第二功能中是否具有处理第一事件的第一功能;
所述发送模块110,具体用于在所述第一检测模块检测到所述第二任务的功能链表中具有所述第一功能时,将所述请求消息发送至所述第二任务的消息队列中。
在一种可能的实现方式中,本申请实施例的装置还包括:
第二检测模块180,用于在接收模块120将所述请求消息放置到所述第二任务的执行链表中之前,检测所述第二任务的功能链表中的各第二功能中是否具有处理所述第一事件的第一功能;
所述接收模块120,具体用于在所述第二检测模块检测到所述第二任务的功能链表中具有所述第一功能时,将所述请求消息放置到所述第二任务的执行链表中。
在一种可能的实现方式中,上述创建模块160,还用于为创建的每个所述第二功能设置优先级;
上述接收模块120,具体用于根据所述请求消息的接收时间和优先级,将所述请求消息放置到所述第二任务的执行链表中,其中,所述请求消息的优先级为各所述第二功能中具有完成所述第一事件能力的第二功能所对应的优先级。
在一种可能的实现方式中,本申请实施例的装置还包括:
清理模块190,用于在所述第二任务执行完所述第一事件后,从所述执行链表中删除所述请求消息;和/或,
在所述第二任务检测到所述第二任务的功能链表中不具有完成所述第一事件能力的第二功能时,删除所述第二功能对应的数据;和/或,
在所述第一任务调用完所述回调函数后,从所述回调链表中删除所述回调函数;和/或,
在检测到所述第二任务或所述第一任务删除时,删除所述第一任务或所述第二任务对应的数据。
本申请实施例的嵌入式实时操作系统中任务间的通信装置,可以用于执行上述嵌入式实时操作装置中任务间的通信方法的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选的,上述图12至图13所示的装置可以以芯片的产品形态存在。
图14为本申请实施例提供的一种电子设备的结构示意图。该电子设备200上搭载有上述图12至图13所示的装置,该电子设备可以实现上述方法实施例,可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个上述功能相应的模块或单元。
在一种可能的设计中,该电子设备200的结构中包括处理器210和存储器220,该处理器210被配置为支持该电子设备200执行上述方法中相应的功能。该电子设备200还可以包括存储器220,该存储器220用于与处理器210耦合,其保存该电子设备200必要的程序指令和数据。
当电子设备200开机后,处理器210可以读取存储器220中的程序指令和数据,解释并执行程序指令,处理程序指令的数据。
本领域技术人员可以理解,为了便于说明,图14仅示出了一个存储器220和一个处理器210。在实际的电子设备200中,可以存在多个处理器210和多个存储器220。存储器220也可以称为存储介质或者存储设备等,本申请实施例对此不做限制。
本申请实施例的电子设备,可以用于执行上述各方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。另外,各个方法实施例之间、各个装置实施例之间也可以互相参考,在不同实施例中的相同或对应内容可以互相引用,不做赘述。
Claims (14)
1.一种嵌入式实时操作系统中任务间的通信方法,其特征在于,包括:
第二任务创建多个第二功能,并将每个所述第二功能放置至所述第二任务的功能链表中;
第一任务检测所述第二任务的功能链表中的各第二功能中是否具有处理第一事件的第一功能;
所述第一任务在检测到所述第二任务的功能链表中具有所述第一功能时,将请求消息发送至所述第二任务的消息队列中,所述请求消息用于请求所述第二任务完成第一事件;
第二任务从所述消息队列中检测到请求消息后,所述第二任务检测所述第二任务的功能链表中的各第二功能中是否具有处理所述第一事件的第一功能;所述第二任务在检测到所述第二任务的功能链表中具有所述第一功能时,将所述请求消息放置到所述第二任务的执行链表中;
所述第二任务检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至所述第一任务的消息队列中。
2.根据权利要求1所述的方法,其特征在于,所述请求消息包括执行结果的反馈信息;
若所述执行结果的反馈信息用于指示所述第二任务反馈所述执行结果,则所述方法还包括:所述第二任务向所述第一任务反馈所述执行结果。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一任务将回调函数放置至所述第一任务的回调链表中,并为所述回调函数设置标识;
所述第一任务检测到消息队列中存在与所述回调函数的标识匹配的执行结果时,调用所述回调函数,获得回调结果。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第二任务为创建的每个所述第二功能设置优先级;
所述第二任务将所述请求消息放置到所述第二任务的执行链表中,包括:
所述第二任务根据所述请求消息的接收时间和优先级,将所述请求消息放置到所述第二任务的执行链表中,其中,所述请求消息的优先级为各所述第二功能中具有完成所述第一事件能力的第二功能所对应的优先级。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第二任务在执行完所述第一事件后,从所述执行链表中删除所述请求消息;和/或,
所述第二任务在检测到所述第二任务的功能链表中不具有完成所述第一事件能力的第二功能时,删除所述第二功能对应的数据;和/或,
所述第一任务在调用完回调函数后,从回调链表中删除所述回调函数;和/或,
系统删除任务在检测到所述第二任务或所述第一任务删除时,删除所述第一任务或所述第二任务对应的数据。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一任务将请求消息发送至第二任务的消息队列中,包括:
所述第一任务采用阻塞式发送方式或非阻塞式发送方式将所述请求消息发送至第二任务的消息队列中。
7.一种嵌入式实时操作系统中任务间的通信装置,其特征在于,包括:
发送模块,用于将请求消息发送至第二任务的消息队列中,所述请求消息用于请求所述第二任务完成第一事件;
接收模块,用于从所述消息队列中检测到请求消息后,将所述请求消息放置到所述第二任务的执行链表中;
执行模块,用于检测到所述执行链表中的请求消息后,调用执行函数,获得所述第一事件的执行结果,并将所述执行结果发送至第一任务的消息队列中;
所述装置还包括:
创建模块,用于创建多个第二功能,并将每个所述第二功能放置至所述第二任务的功能链表中;
第一检测模块,用于在发送模块将请求消息发送至第二任务的消息队列中之前,检测所述第二任务的功能链表中的各第二功能中是否具有处理第一事件的第一功能;
所述发送模块,具体用于在所述第一检测模块检测到所述第二任务的功能链表中具有所述第一功能时,将所述请求消息发送至所述第二任务的消息队列中;
所述装置还包括:
第二检测模块,用于在接收模块将所述请求消息放置到所述第二任务的执行链表中之前,检测所述第二任务的功能链表中的各第二功能中是否具有处理所述第一事件的第一功能;
所述接收模块,具体用于在所述第二检测模块检测到所述第二任务的功能链表中具有所述第一功能时,将所述请求消息放置到所述第二任务的执行链表中。
8.根据权利要求7所述的装置,其特征在于,所述请求消息包括执行结果的反馈信息;
若所述执行结果的反馈信息用于指示所述第二任务反馈所述执行结果,则所述装置还包括:响应模块,用于所述第二任务向所述第一任务反馈所述执行结果。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
回调模块,用于将回调函数放置至所述第一任务的回调链表中,并为所述回调函数设置标识;并在检测到消息队列中存在与所述回调函数的标识匹配的执行结果时,调用所述回调函数,获得回调结果。
10.根据权利要求7所述的装置,其特征在于,
所述创建模块,还用于为每个第二功能设置优先级;
所述接收模块,具体用于根据所述请求消息的接收时间和优先级,将所述请求消息放置到所述第二任务的执行链表中,其中,所述请求消息的优先级为各所述第二功能中具有完成所述第一事件能力的第二功能所对应的优先级。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
清理模块,用于在所述第二任务执行完所述第一事件后,从所述执行链表中删除所述请求消息;和/或,
在所述第二任务检测到所述第二任务的功能链表中不具有完成所述第一事件能力的第二功能时,删除所述第二功能对应的数据;和/或,
在所述第一任务调用完回调函数后,从回调链表中删除所述回调函数;和/或,
在检测到所述第二任务或所述第一任务删除时,删除所述第一任务或所述第二任务对应的数据。
12.根据权利要求7-11任一项所述的装置,其特征在于,
所述发送模块,具体用于采用阻塞式发送方式或非阻塞式发送方式将所述请求消息发送至第二任务的消息队列中。
13.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,具体用于执行如权利要求1至6任一项所述的嵌入式实时操作系统中任务间的通信方法。
14.一种计算机存储介质,其特征在于,所述存储介质包括计算机指令,当所述指令被计算机执行时,使得所述计算机实现如权利要求1至6任一项所述的嵌入式实时操作系统中任务间的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911054938.0A CN110825536B (zh) | 2019-10-31 | 2019-10-31 | 嵌入式实时操作系统中任务间的通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911054938.0A CN110825536B (zh) | 2019-10-31 | 2019-10-31 | 嵌入式实时操作系统中任务间的通信方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110825536A CN110825536A (zh) | 2020-02-21 |
CN110825536B true CN110825536B (zh) | 2022-08-12 |
Family
ID=69552219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911054938.0A Active CN110825536B (zh) | 2019-10-31 | 2019-10-31 | 嵌入式实时操作系统中任务间的通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110825536B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708670B (zh) * | 2020-06-10 | 2023-05-09 | 中国第一汽车股份有限公司 | 实时操作系统中任务时间参数的确定方法、装置及车辆 |
CN113721498B (zh) * | 2021-07-15 | 2022-12-30 | 青岛英泰信息技术有限公司 | 一种基于FreeRTOS的指令交互控制系统及其方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3882760B2 (ja) * | 2003-02-18 | 2007-02-21 | 株式会社デンソー | タスク間通信方法、プログラム、記録媒体、電子機器 |
CN100351799C (zh) * | 2005-09-12 | 2007-11-28 | 浙江大学 | 嵌入式实时操作系统中基于消息对象的任务间通信方法 |
CN103634707A (zh) * | 2012-08-23 | 2014-03-12 | 上海斐讯数据通信技术有限公司 | 通信方法 |
CN106209682B (zh) * | 2016-07-08 | 2019-04-30 | 北京百度网讯科技有限公司 | 业务调度方法、装置和系统 |
CN108228349A (zh) * | 2017-12-26 | 2018-06-29 | 北京市商汤科技开发有限公司 | 用于处理任务的方法、系统和存储介质 |
CN108897854B (zh) * | 2018-06-29 | 2020-06-05 | 京东数字科技控股有限公司 | 一种超时任务的监控方法和装置 |
CN109408251B (zh) * | 2018-09-28 | 2020-11-03 | 北京龙拳风暴科技有限公司 | 消息发送方法与装置、消息接收处理方法与装置 |
-
2019
- 2019-10-31 CN CN201911054938.0A patent/CN110825536B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110825536A (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113110941B (zh) | 使用应用容器管理代码和依赖性数据的传递 | |
EP3786793B1 (en) | Task processing method and device, and computer system | |
US9182975B2 (en) | Automatic application updates | |
US8826301B2 (en) | Method and system for processing data for preventing deadlock | |
CN102541661B (zh) | 实现等待地址同步接口的方法和设备 | |
CN109033814B (zh) | 智能合约触发方法、装置、设备及存储介质 | |
CN110825536B (zh) | 嵌入式实时操作系统中任务间的通信方法及装置 | |
CN113900834B (zh) | 基于物联网技术的数据处理方法、装置、设备及存储介质 | |
CN116243995B (zh) | 通信方法、装置、计算机可读存储介质以及电子设备 | |
US20170286140A1 (en) | Java-based offload service in a mainframe environment | |
EP3213198B1 (en) | Monitoring a mobile device application | |
CN110659104B (zh) | 一种业务监控方法及相关设备 | |
CN110990132B (zh) | 异步任务处理方法、装置、计算机设备和存储介质 | |
CN113342554B (zh) | Io多路复用方法、介质、设备和操作系统 | |
US10061676B2 (en) | Remotely located timing method and device for a processing unit in an information processing system | |
CN113721990A (zh) | 数据处理方法、数据处理设备、加速卡和存储介质 | |
CN111240998B (zh) | 测试用例处理方法和装置 | |
KR20170031131A (ko) | 가상 스트림 및 처리 에이전트를 이용한 스트림 기반 이벤트 처리 기법 | |
US20080127301A1 (en) | Delivering Callbacks Into Secure Application Areas | |
US9507654B2 (en) | Data processing system having messaging | |
CN113296829A (zh) | 处理业务的方法、装置、设备和计算机可读介质 | |
CN111522764A (zh) | 插拔操作的处理方法、终端及存储介质 | |
CN116028204B (zh) | 进程管控方法和电子设备 | |
CN114915659B (zh) | 网络请求处理方法、装置、电子设备及存储介质 | |
CN109343976A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |