CN113312388A - 一种多线程且安全的数据库存储框架的构建方法 - Google Patents

一种多线程且安全的数据库存储框架的构建方法 Download PDF

Info

Publication number
CN113312388A
CN113312388A CN202110591059.2A CN202110591059A CN113312388A CN 113312388 A CN113312388 A CN 113312388A CN 202110591059 A CN202110591059 A CN 202110591059A CN 113312388 A CN113312388 A CN 113312388A
Authority
CN
China
Prior art keywords
thread
data
database
database storage
network
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
Application number
CN202110591059.2A
Other languages
English (en)
Inventor
刘双妹
乔岩
张敏
包汉瑜
李秀财
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
707th Research Institute of CSIC
Original Assignee
707th Research Institute of CSIC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 707th Research Institute of CSIC filed Critical 707th Research Institute of CSIC
Priority to CN202110591059.2A priority Critical patent/CN113312388A/zh
Publication of CN113312388A publication Critical patent/CN113312388A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种多线程且安全的数据库存储框架的构建方法,本发明通过初始化界面并创建网络线程和数据库存储线程;使用网络线程接收以太网数据,将数据解析为可用数据并封装为标准的数据库执行语句,同时每封装一个数据库语句网络线程就发射出一个信号;数据库存储线程捕获网络信号后,将数据库语句插入FIFO队列中;最后通过应用信号量同步机制读取数据库语句并批量执行,保证了线程间数据的正确性和可靠性。本发明能够在CPU利用率和内存占用率都较低的前提条件下,达到预期效果,能够解决界面卡顿或数据库存储网络数据丢数的问题。

Description

一种多线程且安全的数据库存储框架的构建方法
技术领域
本发明属于计算机应用技术领域,尤其是一种多线程且安全的数据库存储框架的构建方法。
背景技术
在装备显控软件中,其中一项重要功能是通过以太网上接收各传感器的数据及状态信息,同时存储到本地数据库中,并通过人机交互界面向用户提供数据查询功能。但由于其他传感器类型较多、接口协议规定的报文短而多、数据存储速度有限,导致在显控软件中,界面切换卡顿或出现数据丢数的问题。
发明内容
本发明的目的在于克服现有技术的不足,提出一种多线程且安全的数据库存储框架的构建方法,提供了多线程并且线程安全的数据库存储框架,最终较好地实现装备存储数据功能需求。
本发明解决其技术问题是采取以下技术方案实现的:
一种多线程且安全的数据库存储框架的构建方法,其特征在于:包括以下步骤:
步骤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信号量获取等待周期。
而且,所述步骤4中信号量同步机制为:若不能使用资源,则进入阻塞状态,函数acquire(n)用于获取第n个资源的参数,函数release(n)释放第n个资源,函数tryAcquire(n)尝试获得第n个资源。
本发明的优点和积极效果是:
本发明通过初始化界面并创建网络线程和数据库存储线程;使用网络线程接收以太网数据,将数据解析为可用数据并封装为标准的数据库执行语句,同时每封装一个数据库语句网络线程就发射出一个信号;数据库存储线程捕获网络信号后,将数据库语句插入FIFO队列中;最后通过应用信号量同步机制读取数据库语句并批量执行,保证了线程间数据的正确性和可靠性。本发明能够在CPU利用率和内存占用率都较低的前提条件下,达到预期效果,能够解决界面卡顿或数据库存储网络数据丢数的问题。
附图说明
图1为本发明创建网络线程和数据库存储线程的流程图;
图2为本发明FIFO队列应用流程图。
具体实施方式
以下结合附图对本发明做进一步详述。
一种多线程且安全的数据库存储框架的构建方法,如图1所示,包括以下步骤:
步骤1、初始化界面,并创建网络线程和数据库存储线程。
步骤2、通过网络线程接收以太网数据,将数据解析为可用数据并封装为标准的数据库执行语句,同时每封装一个数据库语句网络线程就发射出一个信号。
步骤2.1、通过网络线程接收以太网数据,并判断网络线程是否接受到以太网数据,若接收到以太网数据,则进行步骤2.2,否则返回步骤2.1;
步骤2.2、网络线程将接受到的以太网数据解析到结构体对象中同时解析为可用数据;
步骤2.3、将可用数据封装为标准的数据库执行语句;
步骤2.4、每封装一个数据库语句,网络线程就发射出一个sql信号。
步骤3、数据库存储线程捕获网络信号后,将数据库语句插入FIFO队列中。
步骤3.1、判断数据库存储线程是否接收到网络线程发射出的sql信号,若接收到信号,则进行步骤3.2,否则返回步骤3.1;
步骤3.2、数据库存储线程将数据库执行语句插入FIFO队列。
其中,FIFO是First Input First Output的缩写,即先进先出队列。本发明中FIFO队列用于线程异步通信,如图2所示,FIFO队列的具体实现方法包括:
⑴、判断FIFO队列数据是否已满,若FIFO队列数据已满,则数据库存储线程取出队列中的全部数据执行,并释放同步信号量,否则返回步骤3;
⑵、判断数据库存储线程获取信号量等待是否超时1s,若超过,则主动询问FIFO队列中是否为空,若队列不为空,则数据库存储线程取出队列中全部数据执行,并释放同步信号量;若队列中为空,则数据库存储线程进入下一个1s信号量获取等待周期,若不超过,则数据库存储线程进入下一个1s信号量获取等待周期。
步骤4、通过应用信号量同步机制读取数据库语句并批量执行,确保线程间数据的正确性和可靠性。
Qt提供QThread类以进行多任务处理。QThread继承自QObject类,且提供QMutex、QSemaphore等类以实现同步。QSemaphore类提供了函数acquire()和release()支持信号量的运算。其中信号量同步机制为:若不能使用资源,则进入阻塞状态,函数acquire(n)用于获取第n个资源的参数,函数release(n)释放第n个资源,函数tryAcquire(n)尝试获得第n个资源。
根据上述一种多线程且安全的数据库存储框架的构建方法,在CentOS系统中,以QtCreator为开发环境进行了软件仿真实验,成功实现了一种多线程且安全的数据框架,并且降低了CPU使用率,增强了数据库的存储性能,提高了数据库存储的正确性,更加优化满足装备软件的应用需求。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

Claims (6)

1.一种多线程且安全的数据库存储框架的构建方法,其特征在于:包括以下步骤:
步骤1、初始化界面,并创建网络线程和数据库存储线程;
步骤2、通过网络线程接收以太网数据,将数据解析为可用数据并封装为标准的数据库执行语句,同时每封装一个数据库语句网络线程就发射出一个信号;
步骤3、数据库存储线程捕获网络信号后,将数据库语句插入FIFO队列中;
步骤4、通过应用信号量同步机制读取数据库语句并批量执行,确保线程间数据的正确性和可靠性。
2.根据权利要求1所述的一种多线程且安全的数据库存储框架的构建方法,其特征在于:所述步骤2包括以下步骤:
步骤2.1、通过网络线程接收以太网数据,并判断网络线程是否接受到以太网数据,若接收到以太网数据,则进行步骤2.2,否则返回步骤2.1;
步骤2.2、网络线程将接受到的以太网数据解析到结构体对象中同时解析为可用数据;
步骤2.3、将可用数据封装为标准的数据库执行语句;
步骤2.4、每封装一个数据库语句,网络线程就发射出一个sql信号。
3.根据权利要求1所述的一种多线程且安全的数据库存储框架的构建方法,其特征在于:所述步骤3包括以下步骤:
步骤3.1、判断数据库存储线程是否接收到网络线程发射出的sql信号,若接收到信号,则进行步骤3.2,否则返回步骤3.1;
步骤3.2、数据库存储线程将数据库执行语句插入FIFO队列。
4.根据权利要求1所述的一种多线程且安全的数据库存储框架的构建方法,其特征在于:所述步骤3中FIFO队列用于线程异步通信。
5.根据权利要求1所述的一种多线程且安全的数据库存储框架的构建方法,其特征在于:所述FIFO队列的具体实现方法包括:
⑴、判断FIFO队列数据是否已满,若FIFO队列数据已满,则数据库存储线程取出队列中的全部数据执行,并释放同步信号量,否则返回步骤3;
⑵、判断数据库存储线程获取信号量等待是否超时1s,若超过,则主动询问FIFO队列中是否为空,若队列不为空,则数据库存储线程取出队列中全部数据执行,并释放同步信号量;若队列中为空,则数据库存储线程进入下一个1s信号量获取等待周期,若不超过,则数据库存储线程进入下一个1s信号量获取等待周期。
6.根据权利要求1所述的一种多线程且安全的数据库存储框架的构建方法,其特征在于:所述步骤4中信号量同步机制为:若不能使用资源,则进入阻塞状态,函数acquire(n)用于获取第n个资源的参数,函数release(n)释放第n个资源,函数tryAcquire(n)尝试获得第n个资源。
CN202110591059.2A 2021-05-28 2021-05-28 一种多线程且安全的数据库存储框架的构建方法 Pending CN113312388A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110591059.2A CN113312388A (zh) 2021-05-28 2021-05-28 一种多线程且安全的数据库存储框架的构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110591059.2A CN113312388A (zh) 2021-05-28 2021-05-28 一种多线程且安全的数据库存储框架的构建方法

Publications (1)

Publication Number Publication Date
CN113312388A true CN113312388A (zh) 2021-08-27

Family

ID=77376100

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110591059.2A Pending CN113312388A (zh) 2021-05-28 2021-05-28 一种多线程且安全的数据库存储框架的构建方法

Country Status (1)

Country Link
CN (1) CN113312388A (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010034753A1 (en) * 2000-03-23 2001-10-25 International Business Machines Corporation Priority resource allocation in programming environments
US20100115196A1 (en) * 2007-06-01 2010-05-06 Sonics, Inc. Shared storage for multi-threaded ordered queues in an interconnect
CN103514261A (zh) * 2013-08-13 2014-01-15 江苏华大天益电力科技有限公司 一种应用于工业控制系统的数据异步存储及访问机制
CN103577551A (zh) * 2013-10-16 2014-02-12 青岛海信传媒网络技术有限公司 一种数据批量提交到数据库的方法和装置
CN106844589A (zh) * 2017-01-10 2017-06-13 深圳市爱立峰科技有限公司 数据库数据异步存储方法和系统
CN110121704A (zh) * 2016-12-30 2019-08-13 华为技术有限公司 一种用于存储过程的执行方法、设备以及系统
CN110134500A (zh) * 2019-04-15 2019-08-16 平安普惠企业管理有限公司 基于多线程的数据同步方法、装置、设备和存储介质
CN110445730A (zh) * 2019-09-18 2019-11-12 中国科学院微电子研究所 基于WinPcap的网络数据实时采集存储方法和装置
US10635503B1 (en) * 2018-01-31 2020-04-28 EMC IP Holding Company LLC Systems and methods for semaphore synchronization
CN112269835A (zh) * 2020-11-10 2021-01-26 浪潮云信息技术股份公司 一种分布式数据库异步读取并处理批量数据的方法
CN112699150A (zh) * 2021-01-04 2021-04-23 中国银联股份有限公司 一种数据库操作框架、方法及系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010034753A1 (en) * 2000-03-23 2001-10-25 International Business Machines Corporation Priority resource allocation in programming environments
US20100115196A1 (en) * 2007-06-01 2010-05-06 Sonics, Inc. Shared storage for multi-threaded ordered queues in an interconnect
CN103514261A (zh) * 2013-08-13 2014-01-15 江苏华大天益电力科技有限公司 一种应用于工业控制系统的数据异步存储及访问机制
CN103577551A (zh) * 2013-10-16 2014-02-12 青岛海信传媒网络技术有限公司 一种数据批量提交到数据库的方法和装置
CN110121704A (zh) * 2016-12-30 2019-08-13 华为技术有限公司 一种用于存储过程的执行方法、设备以及系统
CN106844589A (zh) * 2017-01-10 2017-06-13 深圳市爱立峰科技有限公司 数据库数据异步存储方法和系统
US10635503B1 (en) * 2018-01-31 2020-04-28 EMC IP Holding Company LLC Systems and methods for semaphore synchronization
CN110134500A (zh) * 2019-04-15 2019-08-16 平安普惠企业管理有限公司 基于多线程的数据同步方法、装置、设备和存储介质
CN110445730A (zh) * 2019-09-18 2019-11-12 中国科学院微电子研究所 基于WinPcap的网络数据实时采集存储方法和装置
CN112269835A (zh) * 2020-11-10 2021-01-26 浪潮云信息技术股份公司 一种分布式数据库异步读取并处理批量数据的方法
CN112699150A (zh) * 2021-01-04 2021-04-23 中国银联股份有限公司 一种数据库操作框架、方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王奇等, 北京航空航天大学出版社 *
苏磊: "物联网环境下的智能化仓库信息系统设计", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *

Similar Documents

Publication Publication Date Title
US7689998B1 (en) Systems and methods that manage processing resources
US6167423A (en) Concurrency control of state machines in a computer system using cliques
US8166483B2 (en) Method and apparatus for implementing priority management of computer operations
CN111767159A (zh) 一种基于协程的异步系统调用系统
CN107463357B (zh) 任务调度系统、调度方法、制动仿真系统及仿真方法
CN105446934B (zh) 一种基于多核dsp的动目标及恒虚警检测系统
CN103559045A (zh) 一种硬件实时操作系统
CN111488290B (zh) 基于智能电表操作系统的线程测试方法和装置
CN113179227B (zh) 基于队列的at指令控制方法
Graillat et al. Parallel code generation of synchronous programs for a many-core architecture
Fu et al. Development of RTOS-based wireless SHM system: Benefits in applications
CN113312388A (zh) 一种多线程且安全的数据库存储框架的构建方法
CN111400073B (zh) 基于汽车开放架构系统到统一软硬件表示的形式化系统模型转换和可靠性分析方法
CN116482725B (zh) 一种开放式卫星导航基带信号处理方法、装置及接收机
Peguero et al. Assessing jitter in sensor time series from android mobile devices
Wiklander et al. Enabling component-based design for embedded real-time software
EP1088269A2 (en) Object-oriented system having anonymous scheduler design pattern
Wang et al. COTS simulation package (CSP) interoperability-a solution to synchronous entity passing
Varona-Gómez et al. Architectural optimization & design of embedded systems based on AADL performance analysis
Yu et al. Schedulability analysis of multi-processor real-time systems using uppaal
Sierszecki et al. A run-time environment supporting real-time execution of embedded control applications
Feiler Efficient embedded runtime systems through port communication optimization
Wang et al. Interrupt nesting method based on time slice in embedded software
CN116737672B (zh) 嵌入式操作系统中文件系统的调度方法、设备及存储介质
Hussain et al. Schedulability analysis for CAN bus messages of periodically-varying size

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210827

RJ01 Rejection of invention patent application after publication