公开/公告号CN105404556A
专利类型发明专利
公开/公告日2016-03-16
原文格式PDF
申请/专利号CN201510691455.7
申请日2015-10-22
分类号G06F9/54(20060101);
代理机构32224 南京纵横知识产权代理有限公司;
代理人董建林
地址 225009 江苏省扬州市维扬路179号
入库时间 2023-12-18 14:50:10
法律状态公告日
法律状态信息
法律状态
2018-10-30
授权
授权
2016-04-13
实质审查的生效 IPC(主分类):G06F9/54 申请日:20151022
实质审查的生效
2016-03-16
公开
公开
技术领域
本发明涉及一种基于L-QT-P多线程事件触发机制的通信系统及方法,属于电力系统辅 助监控技术领域。
背景技术
2015年3月李克强总理在政府工作报告中首次提出“互联网+”行动计划,“互联网+”就 是“互联网+各个传统行业”,将互联网作为当前信息化发展的核心特征,与工业、商业以及 金融业等服务业全面融合。目前全社会都在响应“互联网+”热潮,加强推进各行各业的信息 化建设。
在电力系统内,同样也推动着“互联网+”建设,但是“互联网+”的信息系统建设都离不开 通信基础,通信作为底层的技术支撑,是信息系统的核心层,因此迫切需要一种稳定高效的 通信方法,将能够为各种信息系统建设提供通信架构,从而更好推进电力行业的“互联网+” 建设。
发明内容
本发明的目的在于提供一种基于L-QT-P高效多线程事件触发机制的通信系统及方法, 也就是就是提供一种高效的多线程事件触发机制的技术,能够为各种信息系统提供便捷高效 的通信架构,从而缩短信息系统的开发周期和开发成本,从技术上支撑“互联网+”建设。
为解决上述技术问题,本发明采用的技术方案如下:
基于L-QT-P多线程事件触发机制的通信系统,包括基础功能模块、事件管理模块和多 线程模块,
所述基础功能模块提供I/O读写、定时器、目录监视、编解码、信号/槽、数据结构、 网络库功能接口,所有功能接口以标准C++方式呈现;
所述事件管理模块提供事件逻辑循环,支持SELECT、POLL、EPOLL、KQUEUE、 DEVPOLL、EVPORT以及WIN32事件检测方式检测就绪的事件信号;所述事件管理模块 对于检测到已经就绪的事件信号,以回调方式触发事件信号,并及时通知上层应用;
所述多线程模块基于PTHREAD库,提供跨平台的多线程服务。
前述的事件管理模块会自动根据当前平台选择最优的事件检测方式,也可按照上层指定 的事件检测方式进行检测。
前述的事件管理模块检测的事件包括网络事件、文件事件以及其他事件。
前述的多线程模块支持线程的创建和销毁,同时也提供多种线程锁类型。
基于L-QT-P多线程事件触发机制的通信系统进行通信的方法,包括以下步骤:
1)上层应用向事件管理模块注册关注的事件类型;
2)事件管理模块启动事件检测,识别注册的所有事件信号;
3)当有事件发生时,事件管理模块检测到就绪事件信号后,通过回调方式及时通知上 层应用;
4)上层应用根据事件类型进行相应逻辑业务处理,从而完成整个事件流程的处理。 前述的通信方法支持WINDOWS、LINUX多种平台。
本发明所达到的有益效果:
(1)制定高效稳定的通信架构,从而缩短信息系统的开发周期和开发成本,加快信息 化建设速度;
(2)提供多种功能接口,集成丰富的基础功能库,满足各种信息系统需求;
(3)支持多线程架构,满足信息系统对于大并发的要求;
(4)支持跨平台,为各个平台下建设提供技术支持;
(5)本发明的通信方法具有高速、可移植和非阻塞特性。
附图说明
图1是本发明的通信系统的结构示意图;
图2是本发明的实施例中网络事件触发的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步描述。以下实施例仅用于更加清楚地说 明本发明的技术方案,而不能以此来限制本发明的保护范围。
本发明提供一种基于L-QT-P高效多线程事件触发机制的通信方法,其中L表示基于 Libevent提供的事件管理模块,QT表示是C++基础库,依赖QT提供基础功能模块,P表 示基于PTHREAD提供跨平台的多线程库。
如图1所示,本发明的基于L-QT-P高效多线程事件触发机制的通信系统,主要包括基 础功能模块、事件管理模块以及多线程模块三大模块。其中,
基础功能模块主要依赖QT库,提供I/O读写、定时器、目录监视、编解码、信号/槽、 数据结构、网络库以及其他基础功能等功能接口,所有功能接口以标准C++方式呈现,使用 起来便捷高效。
事件管理模块是本发明的核心模块,提供事件逻辑循环,支持SELECT、POLL、EPOLL、 KQUEUE、DEVPOLL、EVPORT以及WIN32方式检测就绪的事件信号,会自动根据当前 平台选择最优的事件检测方式,也可以按照上层指定的方式进行检测。其中,事件可以是网 络事件、文件事件以及其他事件。对于检测到已经就绪的事件信号,会以回调方式触发事件 信号,及时通知上层应用。
多线程模块主要基于PTHREAD库,提供跨平台的多线程服务,支持线程的创建和销 毁,同时也提供多种实用的线程锁类型。
如图2所示,以网络事件为例,采用本发明的系统进行通信的流程,主要包括以下步骤:
1)上层应用向事件管理模块注册关注的事件类型;
2)事件管理模块启动事件检测机制,识别注册的所有事件信号;
3)当有网络事件发生时,可能包括网络连接事件、网络数据事件以及断开连接事件等;
4)事件管理模块检测到就绪事件信号后,就通过回调方式及时通知上层应用;
5)上层应用根据事件类型进行相应逻辑业务处理,从而完成了整个事件流程的高效处 理。
本发明的通信方法支持WINDOWS、LINUX等多种平台构建环境。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说, 在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为 本发明的保护范围。
机译: 基于事件,基于事件的分层处理系统,基于事件的处理方法,事件驱动的处理系统,事件驱动的处理系统,处理系统,处理系统以及通信系统
机译: 基于事件的分布式分层处理系统,基于事件的分布式分层处理系统中的处理方法以及通信系统。
机译: 促进多线程的面向过程的目标代码转换为基于事件的目标代码的方法