[发明专利]一种多线程且安全的数据库存储框架的构建方法在审
申请号: | 202110591059.2 | 申请日: | 2021-05-28 |
公开(公告)号: | CN113312388A | 公开(公告)日: | 2021-08-27 |
发明(设计)人: | 刘双妹;乔岩;张敏;包汉瑜;李秀财 | 申请(专利权)人: | 中国船舶重工集团公司第七0七研究所 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/242;G06F16/2457 |
代理公司: | 天津盛理知识产权代理有限公司 12209 | 代理人: | 王利文 |
地址: | 300131 天*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多线程 安全 数据库 存储 框架 构建 方法 | ||
本发明涉及一种多线程且安全的数据库存储框架的构建方法,本发明通过初始化界面并创建网络线程和数据库存储线程;使用网络线程接收以太网数据,将数据解析为可用数据并封装为标准的数据库执行语句,同时每封装一个数据库语句网络线程就发射出一个信号;数据库存储线程捕获网络信号后,将数据库语句插入FIFO队列中;最后通过应用信号量同步机制读取数据库语句并批量执行,保证了线程间数据的正确性和可靠性。本发明能够在CPU利用率和内存占用率都较低的前提条件下,达到预期效果,能够解决界面卡顿或数据库存储网络数据丢数的问题。
技术领域
本发明属于计算机应用技术领域,尤其是一种多线程且安全的数据库存储框架的构建方法。
背景技术
在装备显控软件中,其中一项重要功能是通过以太网上接收各传感器的数据及状态信息,同时存储到本地数据库中,并通过人机交互界面向用户提供数据查询功能。但由于其他传感器类型较多、接口协议规定的报文短而多、数据存储速度有限,导致在显控软件中,界面切换卡顿或出现数据丢数的问题。
发明内容
本发明的目的在于克服现有技术的不足,提出一种多线程且安全的数据库存储框架的构建方法,提供了多线程并且线程安全的数据库存储框架,最终较好地实现装备存储数据功能需求。
本发明解决其技术问题是采取以下技术方案实现的:
一种多线程且安全的数据库存储框架的构建方法,其特征在于:包括以下步骤:
步骤1、初始化界面,并创建网络线程和数据库存储线程;
步骤2、通过网络线程接收以太网数据,将数据解析为可用数据并封装为标准的数据库执行语句,同时每封装一个数据库语句网络线程就发射出一个信号;
步骤3、数据库存储线程捕获网络信号后,将数据库语句插入FIFO队列中;
步骤4、通过应用信号量同步机制读取数据库语句并批量执行,确保线程间数据的正确性和可靠性。
而且,所述步骤2包括以下步骤:
步骤2.1、通过网络线程接收以太网数据,并判断网络线程是否接受到以太网数据,若接收到以太网数据,则进行步骤2.2,否则返回步骤2.1;
步骤2.2、网络线程将接受到的以太网数据解析到结构体对象中同时解析为可用数据;
步骤2.3、将可用数据封装为标准的数据库执行语句;
步骤2.4、每封装一个数据库语句,网络线程就发射出一个sql信号。
而且,所述步骤3包括以下步骤:
步骤3.1、判断数据库存储线程是否接收到网络线程发射出的sql信号,若接收到信号,则进行步骤3.2,否则返回步骤3.1;
步骤3.2、数据库存储线程将数据库执行语句插入FIFO队列。
而且,所述步骤3中FIFO队列用于线程异步通信。
而且,所述FIFO队列的具体实现方法包括:
⑴、判断FIFO队列数据是否已满,若FIFO队列数据已满,则数据库存储线程取出队列中的全部数据执行,并释放同步信号量,否则返回步骤3;
⑵、判断数据库存储线程获取信号量等待是否超时1s,若超过,则主动询问FIFO队列中是否为空,若队列不为空,则数据库存储线程取出队列中全部数据执行,并释放同步信号量;若队列中为空,则数据库存储线程进入下一个1s信号量获取等待周期,若不超过,则数据库存储线程进入下一个1s信号量获取等待周期。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国船舶重工集团公司第七0七研究所,未经中国船舶重工集团公司第七0七研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110591059.2/2.html,转载请声明来源钻瓜专利网。