高并发状态机的实现方法、实现装置及系统制造方法及图纸

技术编号:13044506 阅读:46 留言:0更新日期:2016-03-23 13:28
本发明专利技术提供一种高并发状态机的实现方法、实现装置及系统。所述高并发状态机的实现方法将事件索引发送至事件通知队列,并将事件指针进行保存,所述事件指针对应于事件的处理状态;根据事件的优先级将事件信息保存至事件缓存中;根据事件的优先级以事件索引为提取条件提取对应的事件信息;在调用底层处理完成事件的处理后,更新事件的处理状态;根据事件指针、事件索引获取事件的处理状态以完成事件的处理。本发明专利技术通过优化状态机的内存分配、释放机制,并引入优先级机制,提高了平台的性能、任务执行策略、响应能力及吞吐量;在高并发环境下,大大提升系统平台的接入能力以及更好的用户体验。

【技术实现步骤摘要】

本专利技术涉及计算机领域,特别是涉及一种高并发状态机的实现方法、实现装置及系统
技术介绍
计算机应用系统已涉及当今很多业务领域,系统也日趋复杂,对性能、扩展性的要求越来越高。状态机及其理论被提出并得到了广泛的接受,并被引入到很多信息系统中。从状态的角度,信息系统在不同阶段会呈现出不同的运行状态,在某一时刻一定会处于其所有状态中的一个状态,此时它接收一部分允许的输入,产生一部分可能的响应,并且迁移到一部分可能的状态。目前,很多软件系统都呈现日益多样、复杂的趋势,特别是多任务、高并发的环境下,多数情况下使用状态机框架是首选。在这些框架内为状态机执行定义了事件队列、事件订阅、事件分发等机制,使用的时候可以让用户更关注具体的逻辑,这也是状态机框架日益被关注、且不断进行优化、发展的原因所在。状态机目前大致有两种类型:异步类状态机、同步类状态机。然而,面对现实情况是大量用户可能同时涌入一个应用系统时,带来的高并发只有采用异步处理方可应对,所以,异步状态机是绝大多数应用系统的首选。异步状态机是一种基于任务运行逻辑的状态机,任务在等待某个条件达到,也就是任务处于“等待状态”。任务状态的变迁由某个条件的达成触发。同步状态机则基于算法逻辑,通常嵌入在算法函数内部,一次事件就是一次入口函数调用过程。入口函数调用返回时,状态机必须处于一个明确定义的状态,不能是不确定的中间状态,而且存在阻塞的必然性。但上述两种类型状态机,都会存在在某个状态发生等待、阻塞的情况,从而影响了系统的响应能力,因此,如何有效的提高系统的响应能力就成为本领域技术人员亟待解决的问题之一。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种高并发状态机的实现方法、实现装置及系统,用于解决现有技术中状态机的响应能力较差的问题。为实现上述目的及其他相关目的,本专利技术提供一种高并发状态机的实现方法,所述高并发状态机的实现方法包括以下步骤:将事件索引发送至事件通知队列,并将事件指针进行保存,所述事件指针对应于事件的处理状态;根据事件的优先级将事件信息保存至事件缓存中;根据事件的优先级以事件索引为提取条件提取对应的事件信息;在调用底层处理完成事件的处理后,更新事件的处理状态;根据事件指针、事件索引获取事件的处理状态以完成事件的处理。于本专利技术的一实施例中,以通知的形式将事件索引发送至事件通知队列。于本专利技术的一实施例中,所述事件信息包括:事件索引、任务优先级和事件参数。于本专利技术的一实施例中,底层处理以异步的任务处理方式对事件进行处理。本专利技术提供一种高并发状态机的实现装置,所述高并发状态机的实现装置包括:事件发送单元,用于将事件索引发送至事件通知队列,并将事件指针进行保存,所述事件指引对应于事件的处理状态;事件信息保存单元,用于根据事件的优先级将事件信息保存至事件缓存中;事件信息提取单元,用于根据事件的优先级以事件索引为提取条件提取对应的事件信息;更新单元,用于在调用底层处理完成事件的处理后,更新事件的处理状态;状态获取单元,用于根据事件指针、事件索引获取事件的处理状态以完成事件的处理。于本专利技术的一实施例中,所述事件发送单元以通知的形式将事件索引发送至事件通知队列。于本专利技术的一实施例中,所述事件信息包括:事件索引、任务优先级和事件参数。于本专利技术的一实施例中,底层处理以异步的任务处理方式对事件进行处理。本专利技术提供一种高并发状态机的实现系统,包括前述任一项所述的高并发状态机的实现装置。如上所述,本专利技术的高并发状态机的实现方法、实现装置及系统,具有以下有益效果:本专利技术的高并发状态机的实现方法中,将事件信息按照优先级保存至事件缓存中,在对事件处理时,以事件索引为提取条件直接提取缓存中的事件信息,从而简化了事件信息在处理过程中的流转,即通过减少内存数据多次存取、存储、再分配实现了高命中率的内存释放,从而提高了系统资源的利用率。附图说明图1显示为现有技术中状态机的实现流程示意图。图2显示为本专利技术的高并发状态机的实现方法于一实施例中的流程示意图。图3和图4显示为本专利技术的高并发状态机的实现方法的数据流转的示意图。图5显示为本专利技术的高并发状态机的实现装置于一实施例中的结构示意图。元件标号说明2高并发状态机的实现装置21事件发送单元22事件信息保存单元23事件信息提取单元24更新单元25状态获取单元S11~S15步骤具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。正如
技术介绍
中所述的,目前在使用状态机时,经常会发生阻塞从而影响系统的响应能力。本专利技术的专利技术人对现有的状态机机制进行了研究,现有的状态机框架如图1所示:首先,普通应用通过发布事件来触发下层调用;然后,状态机通过订阅事件的方式,被上层应用触发;其次,状态机在被触发后,会继续分发事件,并向下层发布事件;最后,底层的中断服务例程采用和状态机相似的机制,被上层事件调用。参考图1,在每个调用环节有会涉及到数据交换这个过程,而这个交换过程通常的做法是:内存数据包要经过一次拷贝被重新分配存储,作为下层调用的传递参数。那么一次任务完整调用如果经过多次发布、分发、订阅,就会涉及多次的数据交换,这带来的效率问题可以想见,而且一旦遇到高并发的情况,效率、性能的问题会更加明显。而本专利技术正是在基于目前通用的以拷贝为主要数据交换方式的情况下,提出一种新的通过建立事件登记缓存实现数据无需拷贝,数据快速传递及内存高效释放的技术方案。数据可以直接从缓存中被取出,事件的发布只需一个简单的通知消息。同时,引入优先级策略,在任务处理策略方面得以优化,达到提高性能、效率的目的。请参阅图2,本专利技术提供一种高并发状态机的实现方法,所述高并发状态机的实现方法包括以下步骤:S11,将事件索引发送至事件通知队列,并将事件指本文档来自技高网
...

【技术保护点】
一种高并发状态机的实现方法,其特征在于,所述高并发状态机的实现方法包括以下步骤:将事件索引发送至事件通知队列,并将事件指针进行保存,所述事件指针对应于事件的处理状态;根据事件的优先级将事件信息保存至事件缓存中;根据事件的优先级以事件索引为提取条件提取对应的事件信息;在调用底层处理完成事件的处理后,更新事件的处理状态;根据事件指针、事件索引获取事件的处理状态以完成事件的处理。

【技术特征摘要】
1.一种高并发状态机的实现方法,其特征在于,所述高并发状态机的实现方法包括以下步骤:
将事件索引发送至事件通知队列,并将事件指针进行保存,所述事件指针对应于事件
的处理状态;
根据事件的优先级将事件信息保存至事件缓存中;
根据事件的优先级以事件索引为提取条件提取对应的事件信息;
在调用底层处理完成事件的处理后,更新事件的处理状态;
根据事件指针、事件索引获取事件的处理状态以完成事件的处理。
2.根据权利要求1所述的高并发状态机的实现方法,其特征在于,以通知的形式将事件索引
发送至事件通知队列。
3.根据权利要求1所述的高并发状态机的实现方法,其特征在于,所述事件信息包括:事件
索引、任务优先级和事件参数。
4.根据权利要求1所述的高并发状态机的实现方法,其特征在于,底层处理以异步的任务处
理方式对事件进行处理。
5.一种高并发状态机的实现装置,其特征在于,所述高并发状态机的实现装置包括:
事件发送单元,用于将事件索引...

【专利技术属性】
技术研发人员:江液
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1