CN111782425A - 基于索引队列的任务间通信方法、装置、计算机设备 - Google Patents
基于索引队列的任务间通信方法、装置、计算机设备 Download PDFInfo
- Publication number
- CN111782425A CN111782425A CN202010644935.9A CN202010644935A CN111782425A CN 111782425 A CN111782425 A CN 111782425A CN 202010644935 A CN202010644935 A CN 202010644935A CN 111782425 A CN111782425 A CN 111782425A
- Authority
- CN
- China
- Prior art keywords
- index
- queue
- array
- data
- item
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 45
- 238000004891 communication Methods 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000013479 data entry Methods 0.000 claims description 17
- 230000007717 exclusion Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于索引队列的任务间通信方法、装置、计算机设备。其中,所述方法包括:创建数据数组和索引数组,该数据数组和索引数组都支持随机访问,根据该数据数组和索引数组,构建多个索引队列,其中,该每个索引队列有足够的索引项,每个索引项最多只能在一个索引队列中,索引项在索引队列中的先后顺序表示数据之间的有序关系,该索引数组中的索引项与该数据数组中的数据项一一对应,对该索引队列进行队列初始化,从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项添加到该经队列初始化后的索引队列中的目的索引队列。通过上述方式,能够实现任务能够随机访问数据项。
Description
技术领域
本发明涉及任务间通信技术领域,尤其涉及一种基于索引队列的任务间通信方法、装置、计算机设备。
背景技术
基于操作系统的应用软件开发,由于操作系统的调度,都会面临任务间通信的问题。
任务间通信,包括将数据或字符串从一个任务传递给另一个任务的通信过程。
然而,现有的任务间通信方案,一般是采用消息队列方式来进行任务间的数据通信,但是消息队列不支持数据项的随机访问,无法实现任务能够随机访问数据项。
发明内容
有鉴于此,本发明的目的在于提出一种基于索引队列的任务间通信方法、装置、计算机设备,能够实现任务能够随机访问数据项。
根据本发明的一个方面,提供一种基于索引队列的任务间通信方法,包括:创建数据数组和索引数组,所述数据数组和索引数组都支持随机访问;根据所述数据数组和所述索引数组,构建多个索引队列;其中,所述每个索引队列有足够的索引项,所述每个索引项最多只能在一个索引队列中,索引项在索引队列中的先后顺序表示数据之间的有序关系,所述索引数组中的索引项与所述数据数组中的数据项一一对应;对所述构建的索引队列进行队列初始化;从经队列初始化后的索引队列中申请一个索引项,将所述申请的索引项与所述数据数组中的数据项相对应,将所述相对应后的索引项添加到所述经队列初始化后的索引队列中的目的索引队列。
其中,所述对所述构建的索引队列进行队列初始化,包括:为所述构建的索引队列分配空间足够的空数据数组和空索引数组,建立所述空数据数组和所述空索引数组之间的一一对应关系,和根据所述建立的一一对应关系,填写索引项的队列属性,生成空闲队列,根据所述空闲队列,对所述构建的索引队列进行队列初始化。
其中,所述从经队列初始化后的索引队列中申请一个索引项,将所述申请的索引项与所述数据数组中的数据项相对应,将所述相对应后的索引项添加到所述经队列初始化后的索引队列中的目的索引队列,包括:以互斥方式,从经队列初始化后的索引队列中申请一个索引项,将所述申请的索引项与所述数据数组中的数据项相对应,将所述相对应后的索引项以互斥方式添加到所述经队列初始化后的索引队列中的目的索引队列。
其中,在所述从经队列初始化后的索引队列中申请一个索引项,将所述申请的索引项与所述数据数组中的数据项相对应,将所述相对应后的索引项添加到所述经队列初始化后的索引队列中的目的索引队列之后,还包括:配置所述数据数组和索引数组都支持顺序访问。
根据本发明的另一个方面,提供一种基于索引队列的任务间通信装置,包括:创建模块、构建模块、初始化模块和添加模块;所述创建模块,用于创建数据数组和索引数组,所述数据数组和索引数组都支持随机访问;所述构建模块,用于根据所述数据数组和所述索引数组,构建多个索引队列;其中,所述每个索引队列有足够的索引项,所述每个索引项最多只能在一个索引队列中,索引项在索引队列中的先后顺序表示数据之间的有序关系,所述索引数组中的索引项与所述数据数组中的数据项一一对应;所述初始化模块,用于对所述构建的索引队列进行队列初始化;所述添加模块,用于从经队列初始化后的索引队列中申请一个索引项,将所述申请的索引项与所述数据数组中的数据项相对应,将所述相对应后的索引项添加到所述经队列初始化后的索引队列中的目的索引队列。
其中,所述初始化模块,具体用于:为所述构建的索引队列分配空间足够的空数据数组和空索引数组,建立所述空数据数组和所述空索引数组之间的一一对应关系,和根据所述建立的一一对应关系,填写索引项的队列属性,生成空闲队列,根据所述空闲队列,对所述构建的索引队列进行队列初始化。
其中,所述添加模块,具体用于:以互斥方式,从经队列初始化后的索引队列中申请一个索引项,将所述申请的索引项与所述数据数组中的数据项相对应,将所述相对应后的索引项以互斥方式添加到所述经队列初始化后的索引队列中的目的索引队列。
其中,所述基于索引队列的任务间通信装置,还包括:配置模块;所述配置模块,用于配置所述数据数组和索引数组都支持顺序访问。
根据本发明的又一个方面,提供一种计算机设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一项所述的基于索引队列的任务间通信方法。
根据本发明的再一个方面,提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的基于索引队列的任务间通信方法。
可以发现,以上方案,可以创建数据数组和索引数组,该数据数组和索引数组都支持随机访问,和可以根据该数据数组和该索引数组,构建多个索引队列,其中,该每个索引队列有足够的索引项,该每个索引项最多只能在一个索引队列中,索引项在索引队列中的先后顺序表示数据之间的有序关系,该索引数组中的索引项与该数据数组中的数据项一一对应,和可以对该构建的索引队列进行队列初始化,以及可以从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项添加到该经队列初始化后的索引队列中的目的索引队列,能够实现任务能够随机访问数据项。
进一步的,以上方案,可以为该构建的索引队列分配空间足够的空数据数组和空索引数组,建立该空数据数组和该空索引数组之间的一一对应关系,和根据该建立的一一对应关系,填写索引项的队列属性,生成空闲队列,根据该空闲队列,对该构建的索引队列进行队列初始化,这样的好处是能够保障该经队列初始化后的索引队列所关联的队列的入列、出列、插入和遍历等操作与普通队列一致,能够提高该经队列初始化后的索引队列的普适性。
进一步的,以上方案,可以以互斥方式,从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项以互斥方式添加到该经队列初始化后的索引队列中的目的索引队列,这样的好处是能够实现由于任务间互斥访问的对象是索引队列,获取到索引项后对数据项的耗时处理不需要进行互斥访问,能够显著的提高交互效率。
进一步的,以上方案,可以配置该数据数组和索引数组都支持顺序访问,这样的好处是能够实现任务能够随机访问数据项和顺序访问数据项。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明基于索引队列的任务间通信方法一实施例的流程示意图;
图2是本发明索引数组和数据数组的关系示意图;
图3是本发明索引数组的索引队列关系示意图;
图4是本发明基于索引队列的任务间通信方法另一实施例的流程示意图;
图5是本发明基于索引队列的任务间通信装置一实施例的结构示意图;
图6是本发明基于索引队列的任务间通信装置另一实施例的结构示意图;
图7是本发明计算机设备一实施例的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明作进一步的详细描述。特别指出的是,以下实施例仅用于说明本发明,但不对本发明的范围进行限定。同样的,以下实施例仅为本发明的部分实施例而非全部实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供一种基于索引队列的任务间通信方法,能够实现任务能够随机访问数据项。
请参见图1,图1是本发明基于索引队列的任务间通信方法一实施例的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括如下步骤:
S101:创建数据数组和索引数组,该数据数组和索引数组都支持随机访问。
在本实施例中,该数据数组用于存储任务间传递的数据,该索引数组用于维护数据之间的顺序关系,该数据数组和该索引数组都可以为预先分配的静态数组等,本发明不加以限定。
S102:根据该数据数组和该索引数组,构建多个索引队列;其中,该每个索引队列有足够的索引项,该每个索引项最多只能在一个索引队列中,索引项在索引队列中的先后顺序表示数据之间的有序关系,该索引数组中的索引项与该数据数组中的数据项一一对应。
在本实施例中,该每个索引项可以包括指向据数项的数组下标数据、指向数据项的上一个数据项的数组下标数据、指向数据项的下一个数据项的数组下标数据和索引项所在索引队列数据中的至少一项,该每个索引项也可以包括其它内容等,本发明不加以限定。
在本实施例中,该数据数组中的数据项可以用于数据读写等,该索引数组中的索引项可以用于维护数据之间的集合关系,该索引数组中的索引项在索引队列中的先后顺序可以表示数据之间的有序关系等,本发明不加以限定。
在本实施例中,请参见图2和图3,图2是本发明索引数组和数据数组的关系示意图,图3是本发明索引数组的索引队列关系示意图。如图2所示,该数据数组中的数据项可以是0、1、2、3和4等,该索引数组中的索引项可以是0i、1i、2i、3i和4i等,该索引数组中的索引项与该数据数组中的数据项一一对应。如图3所示,该索引数组的每个索引队列都是一个双向链表,该索引数组可以包括两个索引队列例如队列1和队列2,该索引数组可以通过构建索引队列进行数据组织,该索引数组中的每个索引项最多只能在一个索引队列中。
S103:对该构建的索引队列进行队列初始化。
其中,该对该构建的索引队列进行队列初始化,可以包括:
为该构建的索引队列分配空间足够的空数据数组和空索引数组,建立该空数据数组和该空索引数组之间的一一对应关系,和根据该建立的一一对应关系,填写索引项的队列属性,生成空闲队列,根据该空闲队列,对该构建的索引队列进行队列初始化,这样的好处是能够保障该经队列初始化后的索引队列所关联的队列的入列、出列、插入和遍历等操作与普通队列一致,能够提高该经队列初始化后的索引队列的普适性。
在本实施例中,该经队列初始化后的索引队列,可以和队列有关的入列、出列、插入和遍历等操作与普通队列一致等,本发明不加以限定。
S104:从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项添加到该经队列初始化后的索引队列中的目的索引队列。
其中,该从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项添加到该经队列初始化后的索引队列中的目的索引队列,可以包括:
以互斥方式,从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项以互斥方式添加到该经队列初始化后的索引队列中的目的索引队列,这样的好处是能够实现由于任务间互斥访问的对象是索引队列,获取到索引项后对数据项的耗时处理不需要进行互斥访问,能够显著的提高交互效率。
在本实施例中,该创建的数据数组和索引数组可以支持迭代器,可以通过传入参数指针实现开放式迭代器,可以支持正向和反向等,本发明不加以限定。
其中,在该从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项添加到该经队列初始化后的索引队列中的目的索引队列之后,还可以包括:
配置该数据数组和索引数组都支持顺序访问,这样的好处是能够实现任务能够随机访问数据项和顺序访问数据项。
可以发现,在本实施例中,可以创建数据数组和索引数组,该数据数组和索引数组都支持随机访问,和可以根据该数据数组和该索引数组,构建多个索引队列,其中,该每个索引队列有足够的索引项,该每个索引项最多只能在一个索引队列中,索引项在索引队列中的先后顺序表示数据之间的有序关系,该索引数组中的索引项与该数据数组中的数据项一一对应,和可以对该构建的索引队列进行队列初始化,以及可以从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项添加到该经队列初始化后的索引队列中的目的索引队列,能够实现任务能够随机访问数据项。
进一步的,在本实施例中,可以为该构建的索引队列分配空间足够的空数据数组和空索引数组,建立该空数据数组和该空索引数组之间的一一对应关系,和根据该建立的一一对应关系,填写索引项的队列属性,生成空闲队列,根据该空闲队列,对该构建的索引队列进行队列初始化,这样的好处是能够保障该经队列初始化后的索引队列所关联的队列的入列、出列、插入和遍历等操作与普通队列一致,能够提高该经队列初始化后的索引队列的普适性。
进一步的,在本实施例中,可以以互斥方式,从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项以互斥方式添加到该经队列初始化后的索引队列中的目的索引队列,这样的好处是能够实现由于任务间互斥访问的对象是索引队列,获取到索引项后对数据项的耗时处理不需要进行互斥访问,能够显著的提高交互效率。
请参见图4,图4是本发明基于索引队列的任务间通信方法另一实施例的流程示意图。本实施例中,该方法包括以下步骤:
S401:创建数据数组和索引数组,该数据数组和索引数组都支持随机访问。
可如上S101所述,在此不作赘述。
S402:根据该数据数组和该索引数组,构建多个索引队列;其中,该每个索引队列有足够的索引项,该每个索引项最多只能在一个索引队列中,索引项在索引队列中的先后顺序表示数据之间的有序关系,该索引数组中的索引项与该数据数组中的数据项一一对应。
可如上S101所述,在此不作赘述。
S403:对该构建的索引队列进行队列初始化。
可如上S103所述,在此不作赘述。
S404:从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项添加到该经队列初始化后的索引队列中的目的索引队列。
可如上S104所述,在此不作赘述。
S405:配置该数据数组和索引数组都支持顺序访问。
可以发现,在本实施例中,可以配置该数据数组和索引数组都支持顺序访问,这样的好处是能够实现任务能够随机访问数据项和顺序访问数据项。
下面进行举例说明本实施例:
可以应用本发明基于索引队列的任务间通信方法来处理处理任务间通信典型的生产者和消费者之前问题,步骤如下:
步骤1:建立三个索引队列,collectQ:负责收集各生产者任务生产数据的索引项,packQ:负责存放需要消费者任务处理数据的索引项,idleQ:存放空闲索引项供生产者任务申请;
步骤2:生产者任务有生产数据需求时,通过出列操作从idleQ中申请一个空闲索引项,填写索引项对应数据项,然后通过入列操作将索引项添加到collectQ;
步骤3:消费者任务定时将collectQ中的内容通过出列、入列操作搬移到packQ中,对packQ中索引项对应的数据项进行处理后,再将索引项通过出列、入列操作整体搬移到idleQ中;
步骤4:消费者任务需要处理特定的数据项时,遍历collectQ,检索到需要处理的索引项,对索引项对应的数据项进行处理后,通过入列操作将索引项添加到idleQ中。
本发明还提供一种基于索引队列的任务间通信装置,能够实现任务能够随机访问数据项。
请参见图5,图5是本发明基于索引队列的任务间通信装置一实施例的结构示意图。本实施例中,该基于索引队列的任务间通信装置50包括创建模块51、构建模块52、初始化模块53和添加模块54。
该创建模块51,用于创建数据数组和索引数组,该数据数组和索引数组都支持随机访问。
该构建模块52,用于根据该数据数组和该索引数组,构建多个索引队列;其中,该每个索引队列有足够的索引项,该每个索引项最多只能在一个索引队列中,索引项在索引队列中的先后顺序表示数据之间的有序关系,该索引数组中的索引项与该数据数组中的数据项一一对应。
该初始化模块53,用于对该构建的索引队列进行队列初始化。
该添加模块54,用于从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项添加到该经队列初始化后的索引队列中的目的索引队列。
可选地,该初始化模块53,可以具体用于:
为该构建的索引队列分配空间足够的空数据数组和空索引数组,建立该空数据数组和该空索引数组之间的一一对应关系,和根据该建立的一一对应关系,填写索引项的队列属性,生成空闲队列,根据该空闲队列,对该构建的索引队列进行队列初始化。
可选地,该添加模块54,可以具体用于:
以互斥方式,从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项以互斥方式添加到该经队列初始化后的索引队列中的目的索引队列。
请参见图6,图6是本发明基于索引队列的任务间通信装置另一实施例的结构示意图。区别于上一实施例,本实施例所述基于索引队列的任务间通信装置60还包括配置模块61。
该配置模块61,用于配置该数据数组和索引数组都支持顺序访问。
该基于索引队列的任务间通信装置50/60的各个单元模块可分别执行上述方法实施例中对应步骤,故在此不对各单元模块进行赘述,详细请参见以上对应步骤的说明。
本发明又提供一种计算机设备,如图7所示,包括:至少一个处理器71;以及,与至少一个处理器71通信连接的存储器72;其中,存储器72存储有可被至少一个处理器71执行的指令,指令被至少一个处理器71执行,以使至少一个处理器71能够执行上述的基于索引队列的任务间通信方法。
其中,存储器72和处理器71采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器71和存储器72的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器71处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器71。
处理器71负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器72可以被用于存储处理器71在执行操作时所使用的数据。
本发明再提供一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
可以发现,以上方案,可以创建数据数组和索引数组,该数据数组和索引数组都支持随机访问,和可以根据该数据数组和该索引数组,构建多个索引队列,其中,该每个索引队列有足够的索引项,该每个索引项最多只能在一个索引队列中,索引项在索引队列中的先后顺序表示数据之间的有序关系,该索引数组中的索引项与该数据数组中的数据项一一对应,和可以对该构建的索引队列进行队列初始化,以及可以从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项添加到该经队列初始化后的索引队列中的目的索引队列,能够实现任务能够随机访问数据项。
进一步的,以上方案,可以为该构建的索引队列分配空间足够的空数据数组和空索引数组,建立该空数据数组和该空索引数组之间的一一对应关系,和根据该建立的一一对应关系,填写索引项的队列属性,生成空闲队列,根据该空闲队列,对该构建的索引队列进行队列初始化,这样的好处是能够保障该经队列初始化后的索引队列所关联的队列的入列、出列、插入和遍历等操作与普通队列一致,能够提高该经队列初始化后的索引队列的普适性。
进一步的,以上方案,可以以互斥方式,从经队列初始化后的索引队列中申请一个索引项,将该申请的索引项与该数据数组中的数据项相对应,将该相对应后的索引项以互斥方式添加到该经队列初始化后的索引队列中的目的索引队列,这样的好处是能够实现由于任务间互斥访问的对象是索引队列,获取到索引项后对数据项的耗时处理不需要进行互斥访问,能够显著的提高交互效率。
进一步的,以上方案,可以配置该数据数组和索引数组都支持顺序访问,这样的好处是能够实现任务能够随机访问数据项和顺序访问数据项。
在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的部分实施例,并非因此限制本发明的保护范围,凡是利用本发明说明书及附图内容所作的等效装置或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于索引队列的任务间通信方法,其特征在于,包括:
创建数据数组和索引数组,所述数据数组和索引数组都支持随机访问;
根据所述数据数组和所述索引数组,构建多个索引队列;其中,所述每个索引队列有足够的索引项,所述每个索引项最多只能在一个索引队列中,索引项在索引队列中的先后顺序表示数据之间的有序关系,所述索引数组中的索引项与所述数据数组中的数据项一一对应;
对所述构建的索引队列进行队列初始化;
从经队列初始化后的索引队列中申请一个索引项,将所述申请的索引项与所述数据数组中的数据项相对应,将所述相对应后的索引项添加到所述经队列初始化后的索引队列中的目的索引队列。
2.如权利要求1所述的基于索引队列的任务间通信方法,其特征在于,所述对所述构建的索引队列进行队列初始化,包括:
为所述构建的索引队列分配空间足够的空数据数组和空索引数组,建立所述空数据数组和所述空索引数组之间的一一对应关系,和根据所述建立的一一对应关系,填写索引项的队列属性,生成空闲队列,根据所述空闲队列,对所述构建的索引队列进行队列初始化。
3.如权利要求1所述的基于索引队列的任务间通信方法,其特征在于,所述从经队列初始化后的索引队列中申请一个索引项,将所述申请的索引项与所述数据数组中的数据项相对应,将所述相对应后的索引项添加到所述经队列初始化后的索引队列中的目的索引队列,包括:
以互斥方式,从经队列初始化后的索引队列中申请一个索引项,将所述申请的索引项与所述数据数组中的数据项相对应,将所述相对应后的索引项以互斥方式添加到所述经队列初始化后的索引队列中的目的索引队列。
4.如权利要求1所述的基于索引队列的任务间通信方法,其特征在于,在所述从经队列初始化后的索引队列中申请一个索引项,将所述申请的索引项与所述数据数组中的数据项相对应,将所述相对应后的索引项添加到所述经队列初始化后的索引队列中的目的索引队列之后,还包括:
配置所述数据数组和索引数组都支持顺序访问。
5.一种基于索引队列的任务间通信装置,其特征在于,包括:
创建模块、构建模块、初始化模块和添加模块;
所述创建模块,用于创建数据数组和索引数组,所述数据数组和索引数组都支持随机访问;
所述构建模块,用于根据所述数据数组和所述索引数组,构建多个索引队列;其中,所述每个索引队列有足够的索引项,所述每个索引项最多只能在一个索引队列中,索引项在索引队列中的先后顺序表示数据之间的有序关系,所述索引数组中的索引项与所述数据数组中的数据项一一对应;
所述初始化模块,用于对所述构建的索引队列进行队列初始化;
所述添加模块,用于从经队列初始化后的索引队列中申请一个索引项,将所述申请的索引项与所述数据数组中的数据项相对应,将所述相对应后的索引项添加到所述经队列初始化后的索引队列中的目的索引队列。
6.如权利要求5所述的基于索引队列的任务间通信装置,其特征在于,所述初始化模块,具体用于:
为所述构建的索引队列分配空间足够的空数据数组和空索引数组,建立所述空数据数组和所述空索引数组之间的一一对应关系,和根据所述建立的一一对应关系,填写索引项的队列属性,生成空闲队列,根据所述空闲队列,对所述构建的索引队列进行队列初始化。
7.如权利要求5所述的基于索引队列的任务间通信装置,其特征在于,所述添加模块,具体用于:
以互斥方式,从经队列初始化后的索引队列中申请一个索引项,将所述申请的索引项与所述数据数组中的数据项相对应,将所述相对应后的索引项以互斥方式添加到所述经队列初始化后的索引队列中的目的索引队列。
8.如权利要求5所述的基于索引队列的任务间通信装置,其特征在于,所述基于索引队列的任务间通信装置,还包括:
配置模块;
所述配置模块,用于配置所述数据数组和索引数组都支持顺序访问。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至4中任一项所述的基于索引队列的任务间通信方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的基于索引队列的任务间通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010644935.9A CN111782425A (zh) | 2020-07-07 | 2020-07-07 | 基于索引队列的任务间通信方法、装置、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010644935.9A CN111782425A (zh) | 2020-07-07 | 2020-07-07 | 基于索引队列的任务间通信方法、装置、计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111782425A true CN111782425A (zh) | 2020-10-16 |
Family
ID=72758138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010644935.9A Pending CN111782425A (zh) | 2020-07-07 | 2020-07-07 | 基于索引队列的任务间通信方法、装置、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782425A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486697A (zh) * | 2020-11-16 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 数据传输方法、系统、电子设备和存储介质 |
CN113176896A (zh) * | 2021-03-19 | 2021-07-27 | 中盈优创资讯科技有限公司 | 一种基于单进单出无锁队列的随机取出对象的方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050223163A1 (en) * | 2004-03-31 | 2005-10-06 | Gemini Mobile Technologies, Inc. | Synchronous message queues |
US20070112795A1 (en) * | 2005-11-15 | 2007-05-17 | Microsoft Corporation | Scalable retrieval of data entries using an array index or a secondary key |
WO2007149884A2 (en) * | 2006-06-20 | 2007-12-27 | Google, Inc. | A multi-thread high performance computing system |
US20090299959A1 (en) * | 2008-06-02 | 2009-12-03 | Microsoft Corporation | Query result generation based on query category and data source category |
CN102541746A (zh) * | 2010-12-07 | 2012-07-04 | 深圳市金蝶中间件有限公司 | 一种队列的数据处理方法和系统 |
CN102955817A (zh) * | 2011-08-30 | 2013-03-06 | 腾讯数码(深圳)有限公司 | 一种基于共享内存的对象管理与恢复方法及系统 |
CN104035884A (zh) * | 2014-06-30 | 2014-09-10 | 河南百旺金赋电脑有限公司 | 一种双环形队列数据存储方法和智能网关 |
CN104572755A (zh) * | 2013-10-24 | 2015-04-29 | 高德软件有限公司 | 一种建立数据索引的方法、数据查询方法及相关装置 |
CN110727514A (zh) * | 2019-10-12 | 2020-01-24 | 北京无线电测量研究所 | 一种基于索引队列的内存管理方法以及嵌入式设备 |
-
2020
- 2020-07-07 CN CN202010644935.9A patent/CN111782425A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050223163A1 (en) * | 2004-03-31 | 2005-10-06 | Gemini Mobile Technologies, Inc. | Synchronous message queues |
US20070112795A1 (en) * | 2005-11-15 | 2007-05-17 | Microsoft Corporation | Scalable retrieval of data entries using an array index or a secondary key |
WO2007149884A2 (en) * | 2006-06-20 | 2007-12-27 | Google, Inc. | A multi-thread high performance computing system |
US20090299959A1 (en) * | 2008-06-02 | 2009-12-03 | Microsoft Corporation | Query result generation based on query category and data source category |
CN102541746A (zh) * | 2010-12-07 | 2012-07-04 | 深圳市金蝶中间件有限公司 | 一种队列的数据处理方法和系统 |
CN102955817A (zh) * | 2011-08-30 | 2013-03-06 | 腾讯数码(深圳)有限公司 | 一种基于共享内存的对象管理与恢复方法及系统 |
CN104572755A (zh) * | 2013-10-24 | 2015-04-29 | 高德软件有限公司 | 一种建立数据索引的方法、数据查询方法及相关装置 |
CN104035884A (zh) * | 2014-06-30 | 2014-09-10 | 河南百旺金赋电脑有限公司 | 一种双环形队列数据存储方法和智能网关 |
CN110727514A (zh) * | 2019-10-12 | 2020-01-24 | 北京无线电测量研究所 | 一种基于索引队列的内存管理方法以及嵌入式设备 |
Non-Patent Citations (1)
Title |
---|
罗青松;罗蕾;: "内存数据库的一种数据组织方式", 计算机应用, no. 1 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486697A (zh) * | 2020-11-16 | 2021-03-12 | 杭州电魂网络科技股份有限公司 | 数据传输方法、系统、电子设备和存储介质 |
CN113176896A (zh) * | 2021-03-19 | 2021-07-27 | 中盈优创资讯科技有限公司 | 一种基于单进单出无锁队列的随机取出对象的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107113341B (zh) | 用于数据划分的分布式关系数据库管理系统中事务的高吞吐量处理的系统 | |
CN111782425A (zh) | 基于索引队列的任务间通信方法、装置、计算机设备 | |
CN103544153A (zh) | 一种基于数据库的数据更新方法和系统 | |
CN104750690A (zh) | 一种查询处理方法、装置及系统 | |
CN110109868A (zh) | 用于索引文件的方法、装置和计算机程序产品 | |
CN104144202A (zh) | Hadoop分布式文件系统的访问方法、系统和装置 | |
EP2743830A1 (en) | Flexible data communication among partitions in integrated modular avionics | |
CN109446130B (zh) | 一种i/o设备状态信息的获取方法及系统 | |
US10782914B2 (en) | Buffer systems and methods of operating the same | |
CN103078805B (zh) | 使Zookeeper的读性能支持水平扩展的系统和方法 | |
CN107644020B (zh) | 数据存储和调用的方法及装置 | |
CN103530253A (zh) | 集群多全局缓冲池系统、中心节点、计算节点及管理方法 | |
CN103077214A (zh) | 文件存储方法及装置 | |
CN112559020A (zh) | 文件升级方法、装置、设备和介质 | |
CN102238012A (zh) | 计费方法和系统 | |
CN102521155A (zh) | 实现表项在物理存储器上动态分配的方法和装置 | |
CN114116008B (zh) | 命令队列管理方法、装置、可读存储介质及电子设备 | |
KR101960396B1 (ko) | 가상화 및 데이터 중심 설계 기반 노드 재구성 방법 | |
CN111679918A (zh) | 一种消息传输方法及装置 | |
CN114675940A (zh) | 应用实例构建方法、装置和设备 | |
CN108874557B (zh) | 一种前端接口处理方法及系统 | |
CN115204399A (zh) | 一种量子计算任务计算方法、装置及量子计算机操作系统 | |
CN108287741A (zh) | 一种构建管理界面的方法及设备 | |
CN114490106A (zh) | 信息交换系统与方法 | |
CN104461460A (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 |