CN113076069A - 双缓存方法、装置、电子设备及计算机可读存储介质 - Google Patents
双缓存方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113076069A CN113076069A CN202110474083.8A CN202110474083A CN113076069A CN 113076069 A CN113076069 A CN 113076069A CN 202110474083 A CN202110474083 A CN 202110474083A CN 113076069 A CN113076069 A CN 113076069A
- Authority
- CN
- China
- Prior art keywords
- storage space
- thread
- index
- data
- access
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及数据处理技术,揭露一种双缓存方法,包括:申请第一存储空间和第二存储空间,并设置所述第一存储空间和第二存储空间的存取标识及线程索引;构建第一线程及第二线程;根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行执行数据存取操作。本发明还提出一种双缓存装置、设备及存储介质。本发明可以同时对数据进行存放和读取操作,解决了存取操作中效率低的问题。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种双缓存方法、装置、电子设备及计算机可读存储介质。
背景技术
在数据存放及读取时,由于单个线程工作时无法同时进行数据的存储和读取,并且单线程还存在工作效率低的缺点,因此目前通常采用多线程***执行数据的存储和读取。
现有的多线程***利用不同线程同时对共享的存储空间进行数据存放或读取,这样可能导致共享的存储空间中的数据被异常篡改的问题,若采用不同线程之间排队轮番使用共享的存储空间又会导致部分线程等待时间太长的问题,从而无法解决存取操作中效率低的问题。
发明内容
本发明提供一种双缓存方法、装置、电子设备及计算机可读存储介质,其主要目的在于解决存取操作中效率低的问题。
为实现上述目的,本发明提供的一种双缓存方法,包括:
申请第一存储空间和第二存储空间,并设置所述第一存储空间和第二存储空间的存取标识及线程索引;
构建第一线程及第二线程;
根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行执行数据存取操作。
可选地,所述设置所述第一存储空间和第二存储空间的存取标识及线程索引,包括:
设置所述第一存储空间和第二存储空间的初始的存储标识均为可存标识;及
设置所述第一存储空间和第二存储空间的初始的线程索引均为第一索引。
可选地,所述根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行执行数据存取操作,包括:
当需要存放数据时,利用所述第一线程从所述第一存储空间和第二存储空间选择其中一个存取标识为可存标识,且线程索引为第一索引的存储空间进行数据存放,并在数据存放结束后,将该存储空间的存取标识修改为可取标识,及将该存储空间的线程索引修改为第二索引;
当需要读取数据时,利用所述第二线程从所述第一存储空间和第二存储空间选择其中一个存取标识为可取标识,且线程索引为第二索引的存储空间进行数据读取,并在数据读取结束后,将该存储空间的存取标识修改为可存标识,及将该存储空间的线程索引修改为第一索引。
可选地,所述当需要存放数据时,利用所述第一线程从所述第一存储空间和第二存储空间选择其中一个存取标识为可存标识,且线程索引为第一索引的存储空间进行数据存放,包括:当所述第一存储空间和第二存储空间的存取标识均为可存标识,且线程索引均为第一索引时,选择所述第一存储空间进行数据存放。
可选地,所述申请第一存储空间及第二存储空间,包括:
接收双缓存指令;
根据所述双缓存指令调用预设的c标准库中的存储空间申请函数申请所述第一存储空间及第二存储空间。
可选地,所述构建第一线程及第二线程,包括:
创建双线程***实现类,并根据所述双线程***实现类构建线程开始方法;
创建所述双线程***实现类的对象,并根据所述双线程***实现类的对象构建双线程***线程类对象;
利用所述双线程***线程类对象调用所述线程开始方法,构建双线程***,利用所述双线程***构建所述第一线程和所述第二线程。
可选地,所述第一存储空间和第二存储空间为完全相同的存储空间。
为了解决上述问题,本发明还提供一种双缓存装置,所述装置包括:
存储空间申请模块,用于申请第一存储空间和第二存储空间,并设置所述第一存储空间和第二存储空间的存取标识及线程索引;
线程构建模块,用于构建第一线程及第二线程;
数据存取模块,用于根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行执行数据存取操作。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
存储器,存储至少一个计算机程序;及
处理器,执行所述存储器中存储的计算机程序以实现上述所述的双缓存方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,包括存储数据区和存储程序区,存储数据区存储创建的数据,存储程序区存储有计算机程序;其中,所述计算机程序被处理器执行时实现如上所述的双缓存方法。
本发明实施例通过申请第一存储空间和第二存储空间,并设置所述第一存储空间和第二存储空间的存取标识及线程索引,创建用于进行双缓存方法的存储空间,并在构建第一线程及第二线程后根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行的执行数据存取操作,基于数据存放和读取划分不同的线程以及将第一存储空间和第二存储空间在数据存放和读取间进行切换,从而实现同时对数据进行存放和读取的目的,解决了存取操作中效率低的问题。
附图说明
图1为本发明一实施例提供的一种双缓存方法的流程示意图;
图2为本发明一实施例提供的双缓存装置的模块示意图;
图3为本发明一实施例提供的实现双缓存方法的电子设备的内部结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请实施例提供一种双缓存方法。所述双缓存方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述双缓存方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。
参照图1所示,为本发明一实施例提供的一种双缓存方法的流程示意图。
在本实施例中,所述双缓存方法包括:
S1、申请第一存储空间和第二存储空间,并设置所述第一存储空间和第二存储空间的存取标识及线程索引。
本发明实施例中,所述存储空间为数据存放所需要的介质,其中所述第一存储空间和第二存储空间可以为完全相同的存储空间。
本发明实施例中,所述存取标识包括可存标识可存标识可取标识及可取标识。当存储空间的存取标识为可存标识时,表示该存储空间可以进行执行数据存放操作数据存放,当存储空间的存取标识为可取标识时,表示该存储空间可以进行数据读取操作。所述线程索引包括第一索引和第二索引,所述线程索引指示所述第一线程及所述第二线程间在所述第一存储空间及所述第二存储空间之间进行切换。当存储空间的线程索引为第一索引时,表示第一线程可以在该存储空间执行数据的存放操作,当存储空间的线程索引为第二索引时,表示第二线程可以在该存储空间执行数据的读取操作。
详细地,本发明实施例通过下述方法申请第一存储空间及第二存储空间:
接收双缓存指令;
根据所述双缓存指令调用预设的c标准库中的存储空间申请函数申请所述第一存储空间及第二存储空间。
本发明实施例中,所述c标准库即为c语言标准函数库,所述c标准库中包含了所有符合c语言标准的头文件以及常用的函数库实现程序的集合,其中所述头文件为根据函数的名称与特性编写成的电脑文件。
进一步地,所述存储空间申请函数为malloc函数,所述malloc函数可以在存储***中申请一块指定大小的存储空间。
详细地,所述设置所述第一存储空间和第二存储空间的存取标识及线程索引包括;
设置所述第一存储空间和第二存储空间的初始的存储标识均可为可存标识;及
设置所述第一存储空间和第二存储空间的初始的线程索引均为第一索引。
S2、构建第一线程及第二线程。
本发明实施例中,所述线程为计算机操作***能够进行运算调度的最小单位,一条线程为计算机中单一顺序的控制流,其中由多于一个线程构成的计算机操作***为多线程***,即本方案中为计算机操作***多线程***,在多线程***中每条线程可以互不干扰的并行执行不同的任务。
本发明实施例通过下述方法构建第一线程及第二线程:
创建双线程***实现类,并根据所述双线程***实现类构建线程开始方法;
创建所述双线程***实现类的对象,并根据所述双线程***实现类的对象构建双线程***线程类对象;
利用所述双线程***线程类对象调用所述线程开始方法,构建双线程***,利用所述双线程***构建所述第一线程和所述第二线程。
详细地,本发明实施例在构建所述线程开始方法时,所述第一线程及第二线程处于就绪状态,并没有运行,利用所述第一线程及第二线程可以提升设备使用率。
S3、根据所述存取标识及线程索引利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行执行数据存取操作。
本发明实施例中,所述数据存取操作包含对数据执行存放操作和读取操作,其中,所述第一线程负责对数据执行存放操作,所述第二线程负责对数据执行读取操作,并且在本方案中对所述第一存储空间和所述第二存储空间执行数据存取操作将根据所述第一存储空间和第二存储空间的存取标识进行变更。
本发明实施例中,所述根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和所述第二存储空间并行执行数据存取操作,包括:
当需要存放数据时,利用所述第一线程从所述第一存储空间和第二存储空间选择其中一个存取标识为可存标识,且线程索引为第一索引的存储空间进行数据存放,并在数据存放结束后,将该存储空间的存取标识修改为可取标识,及将该存储空间的线程索引修改为第二索引;
当需要读取数据时,利用所述第二线程从所述第一存储空间和第二存储空间选择其中一个存取标识为可取标识,且线程索引为第二索引的存储空间进行数据读取,并在数据读取结束后,将所述存储空间的存取标识修改为可存标识,及将所述存储空间的线程修改为第一索引。
进一步地,本发明实施例中,当所述第一存储空间和第二存储的存取标识均为可存标识,且线程索引均为第一索引时,选择所述第一存储空间进行数据存放。
详细的,当需要存放数据时,本发明实施例利用所述第一线程访问所述第一存储空间,对所述第一存储空间的存取标识进行判断。若所述第一存储空间的存取标识为可存标识,线程索引为第一索引时,则利用所述第一线程在所述第一存储空间进行数据存放操作,并在数据存放后将所述第一存储空间的存取标识变更为可取标识,将所述第一存储空间的线程修改为第二索引。若所述第一存储空间的存取标识为可取标识,则本发明实施例利用所述第一线程访问所述第二存储空间,并对所述第二存储空间的存取标识进行判断。若所述第二存储空间的存取标识为可存标识,线程索引为第一索引时,则利用所述第一线程在所述第二存储空间进行数据存放操作,并在数据存放后将所述第二存储空间的存取标识变更为可取标识,将所述第二存储空间的线程修改为第二索引。若所述第二存储空间的存取标识和所述第一存储空间的存取标识均为可取标识,则所述第一线程将处于等待状态。
进一步地,本发明实施例中,所述当需要读取数据时,步骤同上述相似。
本发明实施例中,当所述第一存储空间及第二存储空间的线程索引均为第一索引时,由所述第一线程按照顺序访问所述第一存储空间及第二存储空间;及当所述第一存储空间及第二存储空间的线程索引均为第二索引时,由所述第二线程按照顺序访问所述第一存储空间及第二存储空间。
本发明实施例中,通过申请第一存储空间和第二存储空间,并设置所述第一存储空间和第二存储空间的存取标识及线程索引,创建用于进行双缓存方法的存储空间,并在构建第一线程及第二线程后根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行的执行数据存取操作,基于数据存放和读取划分不同的线程以及将第一存储空间和第二存储空间在数据存放和读取间进行切换,从而实现同时对数据进行存放和读取的目的。
如图2所示,是本发明双缓存装置的模块示意图。
本发明所述双缓存装置100可以安装于电子设备中。根据实现的功能,所述双缓存装置可以包括存储空间申请模块101、线程构建模块102和数据存取模块103。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
所述存储空间申请模块101,用于申请第一存储空间和第二存储空间,并设置所述第一存储空间和第二存储空间的存取标识及线程索引。
本发明实施例中,所述存储空间为数据存放所需要的介质,其中所述第一存储空间和第二存储空间可以为完全相同的存储空间。
本发明实施例中,所述存取标识包括可存标识可存标识可取标识及可取标识。当存储空间的存取标识为可存标识时,表示该存储空间可以进行执行数据存放操作数据存放,当存储空间的存取标识为可取标识时,表示该存储空间可以进行数据读取操作。所述线程索引包括第一索引和第二索引,所述线程索引指示所述第一线程及所述第二线程间在所述第一存储空间及所述第二存储空间之间进行切换。当存储空间的线程索引为第一索引时,表示第一线程可以在该存储空间执行数据的存放操作,当存储空间的线程索引为第二索引时,表示第二线程可以在该存储空间执行数据的读取操作。
详细地,本发明实施例所述存储空间申请模块101通过下述方法申请第一存储空间及第二存储空间:
接收双缓存指令;
根据所述双缓存指令调用预设的c标准库中的存储空间申请函数申请所述第一存储空间及第二存储空间。
本发明实施例中,所述c标准库即为c语言标准函数库,所述c标准库中包含了所有符合c语言标准的头文件以及常用的函数库实现程序的集合,其中所述头文件为根据函数的名称与特性编写成的电脑文件。
进一步地,所述存储空间申请函数为malloc函数,所述malloc函数可以在存储***中申请一块指定大小的存储空间。
详细地,所述设置所述第一存储空间和第二存储空间的存取标识及线程索引,包括;
设置所述第一存储空间和第二存储空间的初始的存储标识均可为可存标识;及
设置所述第一存储空间和第二存储空间的初始的线程索引均为第一索引。
所述线程构建模块102,用于构建第一线程及第二线程。
本发明实施例中,所述线程为计算机操作***能够进行运算调度的最小单位,一条线程为计算机中单一顺序的控制流,其中由多于一个线程构成的计算机操作***为多线程***,即本方案中为计算机操作***多线程***,在多线程***中每条线程可以互不干扰的并行执行不同的任务。
本发明实施例所述线程构建模块102通过下述方法构建第一线程及第二线程:
创建双线程***实现类,并根据所述双线程***实现类构建线程开始方法;
创建所述双线程***实现类的对象,并根据所述双线程***实现类的对象构建双线程***线程类对象;
利用所述双线程***线程类对象调用所述线程开始方法,构建双线程***,利用所述双线程***构建所述第一线程和所述第二线程。
详细地,本发明实施例在构建所述线程开始方法时,所述第一线程及第二线程处于就绪状态,并没有运行,利用所述第一线程及第二线程可以提升设备使用率。
所述数据存取模块103,用于根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行执行数据存取操作。
本发明实施例中,所述数据存取操作包含对数据执行存放操作和读取操作,其中,所述第一线程负责对数据执行存放操作,所述第二线程负责对数据执行读取操作,并且在本方案中对所述第一存储空间和所述第二存储空间执行数据存取操作将根据所述第一存储空间和第二存储空间的存取标识进行变更。
本发明实施例中,所述根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和所述第二存储空间并行执行数据存取操作,包括:
当需要存放数据时,利用所述第一线程从所述第一存储空间和第二存储空间选择其中一个存取标识为可存标识,且线程索引为第一索引的存储空间进行数据存放,并在数据存放结束后,将该存储空间的存取标识修改为可取标识,及将该存储空间的线程索引修改为第二索引;
当需要读取数据时,利用所述第二线程从所述第一存储空间和第二存储空间选择其中一个存取标识为可取标识,且线程索引为第二索引的存储空间进行数据读取,并在数据读取结束后,将所述存储空间的存取标识修改为可存标识,及将所述存储空间的线程修改为第一索引。
进一步地,本发明实施例中,当所述第一存储空间和第二存储的存取标识均为可存标识,且线程索引均为第一索引时,所述数据存取模块103选择所述第一存储空间进行数据存放。
详细的,当需要存放数据时,本发明实施例所述数据存取模块103利用所述第一线程访问所述第一存储空间,对所述第一存储空间的存取标识进行判断。若所述第一存储空间的存取标识为可存标识,线程索引为第一索引时,则所述数据存取模块103利用所述第一线程在所述第一存储空间进行数据存放操作,并在数据存放后将所述第一存储空间的存取标识变更为可取标识,将所述第一存储空间的线程修改为第二索引。若所述第一存储空间的存取标识为可取标识,则本发明实施例所述数据存取模块103利用所述第一线程访问所述第二存储空间,并对所述第二存储空间的存取标识进行判断。若所述第二存储空间的存取标识为可存标识,线程索引为第一索引时,则所述数据存取模块103利用所述第一线程在所述第二存储空间进行数据存放操作,并在数据存放后将所述第二存储空间的存取标识变更为可取标识,将所述第二存储空间的线程修改为第二索引。若所述第二存储空间的存取标识和所述第一存储空间的存取标识均为可取标识,则所述第一线程将处于等待状态。
进一步地,本发明实施例中,所述当需要读取数据时,步骤同上述相似。
本发明实施例中,当所述第一存储空间及第二存储空间的线程索引均为第一索引时,由所述第一线程按照顺序访问所述第一存储空间及第二存储空间;及当所述第一存储空间及第二存储空间的线程索引均为第二索引时,由所述第二线程按照顺序访问所述第一存储空间及第二存储空间。
本发明实施例通过申请第一存储空间和第二存储空间,并设置所述第一存储空间和第二存储空间的存取标识及线程索引,创建用于进行双缓存方法的存储空间,并在构建第一线程及第二线程后根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行的执行数据存取操作,基于数据存放和读取划分不同的线程以及将第一存储空间和第二存储空间在数据存放和读取间进行切换,从而实现同时对数据进行存放和读取的目的,解决了存取操作中效率低的问题。
如图3所示,是本发明实现双缓存方法的电子设备的结构示意图。
所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如双缓存程序12。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如双缓存程序12的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行双缓存程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的双缓存程序12是多个计算机程序的组合,在所述处理器10中运行时,可以实现:
申请第一存储空间和第二存储空间,并设置所述第一存储空间和第二存储空间的存取标识及线程索引;
构建第一线程及第二线程;
根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行执行数据存取操作。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图表记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种双缓存方法,其特征在于,所述方法包括:
申请第一存储空间和第二存储空间,并设置所述第一存储空间和第二存储空间的存取标识及线程索引;
构建第一线程及第二线程;
根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行执行数据存取操作。
2.如权利要求1所述的双缓存方法,其特征在于,所述设置所述第一存储空间和第二存储空间的存取标识及线程索引,包括:
设置所述第一存储空间和第二存储空间的初始的存储标识均为可存标识;及
设置所述第一存储空间和第二存储空间的初始的线程索引均为第一索引。
3.如权利要求2所述的双缓存方法,其特征在于,所述根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行执行数据存取操作,包括:
当需要存放数据时,利用所述第一线程从所述第一存储空间和第二存储空间选择其中一个存取标识为可存标识,且线程索引为第一索引的存储空间进行数据存放,并在数据存放结束后,将该存储空间的存取标识修改为可取标识,及将该存储空间的线程索引修改为第二索引;
当需要读取数据时,利用所述第二线程从所述第一存储空间和第二存储空间选择其中一个存取标识为可取标识,且线程索引为第二索引的存储空间进行数据读取,并在数据读取结束后,将该存储空间的存取标识修改为可存标识,及将该存储空间的线程索引修改为第一索引。
4.如权利要求3所述的双缓存方法,其特征在于,所述当需要存放数据时,利用所述第一线程从所述第一存储空间和第二存储空间选择其中一个存取标识为可存标识,且线程索引为第一索引的存储空间进行数据存放,包括:当所述第一存储空间和第二存储空间的存取标识均为可存标识,且线程索引均为第一索引时,选择所述第一存储空间进行数据存放。
5.如权利要求1所述的双缓存方法,其特征在于,所述申请第一存储空间及第二存储空间,包括:
接收双缓存指令;
根据所述双缓存指令调用预设的c标准库中的存储空间申请函数申请所述第一存储空间及第二存储空间。
6.如权利要求1所述的双缓存方法,其特征在于,所述构建第一线程及第二线程,包括:
创建双线程***实现类,并根据所述双线程***实现类构建线程开始方法;
创建所述双线程***实现类的对象,并根据所述双线程***实现类的对象构建双线程***线程类对象;
利用所述双线程***线程类对象调用所述线程开始方法,构建双线程***,利用所述双线程***构建所述第一线程和所述第二线程。
7.如权利要求1至6中任意一项所述的双缓存方法,其特征在于,所述第一存储空间和第二存储空间为完全相同的存储空间。
8.一种双缓存装置,其特征在于,所述装置包括:
存储空间申请模块,用于申请第一存储空间和第二存储空间,并设置所述第一存储空间和第二存储空间的存取标识及线程索引;
线程构建模块,用于构建第一线程及第二线程;
数据存取模块,用于根据所述存取标识及线程索引,利用所述第一线程及第二线程在所述第一存储空间和第二存储空间并行执行数据存取操作。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的双缓存方法。
10.一种计算机可读存储介质,包括存储数据区和存储程序区,存储数据区存储创建的数据,存储程序区存储有计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的双缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110474083.8A CN113076069A (zh) | 2021-04-29 | 2021-04-29 | 双缓存方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110474083.8A CN113076069A (zh) | 2021-04-29 | 2021-04-29 | 双缓存方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113076069A true CN113076069A (zh) | 2021-07-06 |
Family
ID=76616180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110474083.8A Pending CN113076069A (zh) | 2021-04-29 | 2021-04-29 | 双缓存方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113076069A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687770A (zh) * | 2023-06-21 | 2024-03-12 | 荣耀终端有限公司 | 内存申请方法及相关装置 |
-
2021
- 2021-04-29 CN CN202110474083.8A patent/CN113076069A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687770A (zh) * | 2023-06-21 | 2024-03-12 | 荣耀终端有限公司 | 内存申请方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538573A (zh) | 异步任务处理方法、装置及计算机可读存储介质 | |
CN115118738B (zh) | 基于rdma的灾备方法、装置、设备及介质 | |
CN111694844A (zh) | 基于配置算法的企业运行数据分析方法、装置及电子设备 | |
CN114185895A (zh) | 数据导入导出方法、装置、电子设备及存储介质 | |
CN113890712A (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
CN113076069A (zh) | 双缓存方法、装置、电子设备及计算机可读存储介质 | |
CN112464619A (zh) | 大数据处理方法、装置、设备及计算机可读存储介质 | |
CN112948380A (zh) | 基于大数据的数据存储方法、装置、电子设备及存储介质 | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
CN114626103A (zh) | 数据一致性比对方法、装置、设备及介质 | |
CN114896164A (zh) | 接口优化方法、装置、电子设备及存储介质 | |
CN113407322B (zh) | 多终端的任务分配方法、装置、电子设备及可读存储介质 | |
CN112925753B (zh) | 文件追加写入方法、装置、电子设备及存储介质 | |
CN114911479A (zh) | 基于配置化的界面生成方法、装置、设备及存储介质 | |
CN115033605A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN113918296A (zh) | 模型训练任务调度执行方法、装置、电子设备及存储介质 | |
CN114625712A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN113297180A (zh) | 数据迁移方法、装置、电子设备及存储介质 | |
CN113515265A (zh) | 站点配置方法、装置、设备及计算机可读存储介质 | |
CN114860349B (zh) | 数据加载方法、装置、设备及介质 | |
CN115543214B (zh) | 低时延场景下的数据存储方法、装置、设备及介质 | |
CN115174698B (zh) | 基于表项索引的行情数据解码方法、装置、设备及介质 | |
CN113297228B (zh) | 基于多活实例的MySQL写入方法、装置、设备及介质 | |
CN112667570A (zh) | 文件访问方法、装置、设备及可读存储介质 | |
CN113918603A (zh) | 散列缓存生成方法、装置、电子设备及存储介质 |
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 |