一种多线程程序数据统一管理方法、系统及电子设备技术方案

技术编号:26504733 阅读:29 留言:0更新日期:2020-11-27 15:32
本发明专利技术提供一种多线程程序数据统一管理方法、系统及电子设备,所述方法包括步骤:以分布式存储数据库的哈希表存储各个业务模块的业务数据,且定义指向所述业务数据的智能指针;所述智能指针的数据类型与所述业务数据的数据基类相对应;接收对目标业务数据的访问请求,并根据所述访问请求调用智能指针;根据所述智能指针调用所述目标业务数据。本发明专利技术通过将各业务模块的数据存储在数据管理模块里,由数据管理模块进行管理与支持多线程访问,用分布式存储数据库的哈希表来存储数据,每个对象维护一把递归锁来保证自己的数据多线程安全。而且,多锁设计能够提高多线程的读写速率。

【技术实现步骤摘要】
一种多线程程序数据统一管理方法、系统及电子设备
本申请涉及线程数据管理领域,特别是涉及一种多线程程序数据统一管理方法、系统及电子设备。
技术介绍
由于嵌入式设备的功能越来越多,相应的模块数据也越来越多,同时线程数量也相应增多,每个模块都需要确保自己的数据能够线程安全。为了保证线程安全,现有采用的方式是业务逻辑单独一个线程,其它线程获取数据时通过发送同步消息到业务逻辑的线程上,业务逻辑返回相应的数据,这样就能保证业务模块的数据是线程安全的。然而,在该方式中,其它线程获取数据依赖于业务逻辑线程的处理速度,如果业务逻辑线程的业务比较繁忙,而外部又有多条线程都需要获取数据时,就需要在业务逻辑线程的消息队列里排队,这样其它线程的反应就会变慢,影响整个程序的性能。因此,现有技术有待进一步改进和提升。
技术实现思路
基于此,有必要针对上述技术问题,提供一种多线程程序数据统一管理方法、系统及电子设备,以便统一管理各业务模块的数据,降低各业务模块的复杂度,保证各线程安全。本专利技术实施例第一方面提供了一种多线程程序数据统一管理方法,包括步骤:以分布式存储数据库的哈希表存储各个业务模块的业务数据,且定义指向所述业务数据的智能指针;所述智能指针的数据类型与所述业务数据的数据基类相对应;接收对目标业务数据的访问请求,并根据所述访问请求调用智能指针;根据所述智能指针调用所述目标业务数据。进一步地,所述以分布式存储数据库的哈希表存储各个业务模块的业务数据,且定义指向所述业务数据的智能指针的步骤包括:在分布式存储数据库中建立各个业务模块的业务数据的哈希表;将所述哈希表中各个业务数据的数据结构加入递归锁;定义所述分布式存储数据库中业务数据的智能指针的数据类型。进一步地,所述根据所述智能指针调用所述目标业务模块的业务数据的步骤包括:根据所述智能指针调用所指向的目标业务数据;对所述目标业务数据的数据结构中的递归锁加锁;在所述智能指针被释放时对所述目标业务数据的数据结构中的递归锁解锁。进一步地,所述根据所述访问请求调用智能指针的步骤包括:根据所述访问请求,对所述智能指针进行读写操作。进一步地,上述以分布式存储数据库的哈希表存储各个业务模块的业务数据的步骤之前还包括:接收业务模块的增删请求,更新所述分布式存储数据库的哈希表以增加或删除业务模块的业务数据。本专利技术实施例第二方面提供了一种多线程程序数据统一管理系统,所述系统包括:存储模块,用于以分布式存储数据库的哈希表存储各个业务模块的业务数据,且定义指向所述业务数据的智能指针;所述智能指针的数据类型与所述业务数据的数据基类相对应;第一调用模块,用于接收对目标业务数据的访问请求,并根据所述访问请求调用智能指针;第二调用模块,用于根据所述智能指针调用所述目标业务数据。进一步地,所述存储模块包括:创建模块,用于在分布式存储数据库中建立各个业务模块的业务数据的哈希表;加锁模块,用于将所述哈希表中各个业务数据的数据结构加入递归锁;指针定义模块,用于定义所述分布式存储数据库中业务数据的智能指针的数据类型。进一步地,所述第二调用模块包括:业务数据调用模块,用于根据所述智能指针调用所指向的目标业务数据;递归锁加锁模块,用于对所述目标业务数据的数据结构中的递归锁加锁;解锁模块,用于在所述智能指针被释放时对所述目标业务数据的数据结构中的递归锁解锁。本专利技术实施例第三方面提供了一种电子设备,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令程序,所述指令程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的方法。本专利技术实施例第四方面提供了一种在多线程程序数据统一管理系统中使用的计算机程序产品,所述计算机程序产品包括上述的功能模块。本专利技术提供的多线程程序数据统一管理方法、系统及电子设备,通过将各业务模块的数据存储在数据管理模块里,由数据管理模块进行管理与支持多线程访问,用分布式存储数据库的哈希表来存储数据,每个对象维护一把递归锁来保证自己的数据多线程安全。而且,多锁设计能够提高多线程的读写速率。附图说明图1为本专利技术实施例提供的多线程程序数据统一管理方法的一实施例流程示意图;图2为本专利技术实施例提供的多线程程序数据统一管理方法的另一实施例流程示意图;图3为本专利技术实施例提供的多线程程序数据统一管理方法的另一实施例流程示意图;图4为本专利技术实施例提供的多线程程序数据统一管理系统的一实施例结构框图;图5为本专利技术实施例提供的多线程程序数据统一管理系统的另一实施例结构框图;图6为本专利技术实施例提供的多线程程序数据统一管理系统的另一实施例结构框图;图7为专利技术实施例提供的电子设备的结构示意图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本专利技术实施例的多线程程序数据统一管理方法应用于嵌入式设备,对于嵌入式设备的多线程程序,本专利技术通过数据管理模块或装置对各个业务模块的业务数据进行统一管理和多线程访问,以保证外部模块对嵌入式设备中业务模块的业务数据进行访问时不需要再依赖于业务逻辑线程的处理速度,进而提升整体性能。参见图1,本专利技术实施例提供的一种多线程程序数据统一管理方法,包括步骤:S100、以分布式存储数据库的哈希表存储各个业务模块的业务数据,且定义指向所述业务数据的智能指针;所述智能指针的数据类型与所述业务数据的数据基类相对应。在本实施例中,对于各个业务模块的业务数据,采用分布式存储数据库进行存储,分布式存储数据库是采用使用键值对(Key-Value)存储数据库,由于其查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,而由于本实施例是为了应对对多个业务模块的业务数据的访问操作,需要高查询速度以及支持高并发,因此,采用分布式存储数据库来存储各个业务模块的业务数据,能够保证业务模块和外部模块对业务数据的快速查询访问。而对于嵌入式设备来说,多线程访问属于常态,而本专利技术通过采用分布式存储数据库能够有效保证嵌入式设备多线程访问业务数据的需求。本实施例的键值对(Key-Value)存储数据库可以选用Redis、QDB、RebirnDB等数据库,当然,也不限于上述几种,其中同类数据库亦可。而对于该数据库,其采用键值(Key-Value)的哈希表来存储业务数据,将业务数据按照键值对的形式进行组织、索引和存储,Key为定义的一个字符串,每个Key键都会对应一个唯一的值,通过主键查询哈希表所对应的业务数据,可以达到亚毫秒级延时,而且语法简单,易用性强。同时,本实施例的map通过使本文档来自技高网...

【技术保护点】
1.一种多线程程序数据统一管理方法,其特征在于,包括步骤:/n以分布式存储数据库的哈希表存储各个业务模块的业务数据,且定义指向所述业务数据的智能指针;所述智能指针的数据类型与所述业务数据的数据基类相对应;/n接收对目标业务数据的访问请求,并根据所述访问请求调用智能指针;/n根据所述智能指针调用所述目标业务数据。/n

【技术特征摘要】
1.一种多线程程序数据统一管理方法,其特征在于,包括步骤:
以分布式存储数据库的哈希表存储各个业务模块的业务数据,且定义指向所述业务数据的智能指针;所述智能指针的数据类型与所述业务数据的数据基类相对应;
接收对目标业务数据的访问请求,并根据所述访问请求调用智能指针;
根据所述智能指针调用所述目标业务数据。


2.根据权利要求1所述的多线程程序数据统一管理方法,其特征在于,所述以分布式存储数据库的哈希表存储各个业务模块的业务数据,且定义指向所述业务数据的智能指针的步骤包括:
在分布式存储数据库中建立各个业务模块的业务数据的哈希表;
将所述哈希表中各个业务数据的数据结构加入递归锁;
定义所述分布式存储数据库中业务数据的智能指针的数据类型。


3.根据权利要求2所述的多线程程序数据统一管理方法,其特征在于,所述根据所述智能指针调用所述目标业务模块的业务数据的步骤包括:
根据所述智能指针调用所指向的目标业务数据;
对所述目标业务数据的数据结构中的递归锁加锁;
在所述智能指针被释放时对所述目标业务数据的数据结构中的递归锁解锁。


4.根据权利要求1所述的多线程程序数据统一管理方法,其特征在于,所述根据所述访问请求调用智能指针的步骤包括:
根据所述访问请求,对所述智能指针进行读写操作。


5.根据权利要求1所述的多线程程序数据统一管理方法,其特征在于,上述以分布式存储数据库的哈希表存储各个业务模块的业务数据的步骤之前还包括:
接收业务模块的增删请求,更新所述分布式存储数据库的哈希表以增加或删除业务模块的业务数据。


6.一...

【专利技术属性】
技术研发人员:余根平
申请(专利权)人:厦门亿联网络技术股份有限公司
类型:发明
国别省市:福建;35

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

1