CN109271193B - 一种数据处理方法、装置、设备及存储介质 - Google Patents
一种数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109271193B CN109271193B CN201811168541.XA CN201811168541A CN109271193B CN 109271193 B CN109271193 B CN 109271193B CN 201811168541 A CN201811168541 A CN 201811168541A CN 109271193 B CN109271193 B CN 109271193B
- Authority
- CN
- China
- Prior art keywords
- data
- pointer
- current
- pointing
- period
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000008569 process Effects 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 16
- 230000003287 optical effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法、装置、设备及存储介质。该方法包括:当前周期结束,则获取下一周期数据的更新请求;根据更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,当前指针是指向正在使用数据的指针变量;将使用指针从指向上一周期数据变更为指向当前周期数据,使用指针是指向已使用数据的指针变量。本发明实施例实现了无需独占锁或重启程序便可完成更新操作,提高了数据并发处理量以及程序访问性能。
Description
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种数据处理方法、装置、设备及存储介质。
背景技术
在计算机程序运行过程中,经常需要通过写操作(即更新操作)以使新数据生效。针对读操作多而更新操作少的应用场景而言,示例性的,如更新礼物配置、更新关键词配置或更新配置文件等,现有技术中通常采用如下两种方式进行处理:其一,重启程序。即当需要进行更新操作时,重启程序;其二,使用独占锁。即在进行更新操作时不能进行读操作,相应的,在进行读操作时也不能进行更新操作。这是由于对同一数据同时进行读操作和更新操作可能会导致程序崩溃,上述确保了数据的准确性和程序运行的安全性。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:采用重启方式进行更新操作会短暂影响服务;采用设置独占锁的方式会导致并发量降低,影响程序性能。
发明内容
本发明实施例提供一种数据处理方法、装置、设备及存储介质,以实现提高并发处理量以及程序访问性能。
第一方面,本发明实施例提供了一种数据处理方法,该方法包括:
当前周期结束,则获取下一周期数据的更新请求;
根据所述更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,所述当前指针是指向正在使用数据的指针变量;
将使用指针从指向上一周期数据变更为指向当前周期数据,所述使用指针是指向已使用数据的指针变量。
进一步的,所述当前周期结束,则获取下一周期数据的更新请求之后,还包括:
获取数据的读取请求;
调用本地指针得到目标数据,所述本地指针是指向所述当前指针的指针变量。
进一步的,该方法还包括:
删除上一周期数据。
进一步的,所述上一周期数据为非空数据。
进一步的,通过如下方式获取所述下一周期数据:
接收下一周期数据的获取请求;
将用户输入的最新信息作为所述下一周期数据。
进一步的,通过如下方式获取所述下一周期数据:
向数据库发送下一周期数据的获取请求;
接收来自所述数据库的信息作为所述下一周期数据。
第二方面,本发明实施例还提供了一种数据处理装置,该装置包括:
更新请求获取模块,用于当前周期结束,则获取下一周期数据的更新请求;
当前指针指向变更模块,用于根据所述更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,所述当前指针是指向正在使用数据的指针变量;
使用指针指向变更模块,用于将使用指针从指向上一周期数据变更为指向当前周期数据,所述使用指针是指向已使用数据的指针变量。
进一步的,该装置还包括:
读取请求获取模块,用于获取数据的读取请求;
目标数据获取模块,用于调用本地指针得到目标数据,所述本地指针是指向所述当前指针的指针变量。
第三方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所述的方法
本发明实施例通过当前周期结束,则获取下一周期数据的更新请求,根据更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,当前指针是指向正在使用数据的指针变量,将使用指针从指向上一周期数据变更为指向当前周期数据,使用数据是指向已使用数据的指针变量,实现了无需独占锁或重启程序便可完成更新操作,提高了数据并发处理量以及程序访问性能。
附图说明
图1是本发明实施例中的一种直播平台的显示界面的示意图;
图2是本发明实施例中的另一种直播平台的显示界面的示意图;
图3是本发明实施例中的一种礼物选择界面的示意图;
图4是本发明实施例中的另一种礼物选择界面的示意图;
图5是本发明实施例中的再一种礼物选择界面的示意图;
图6是本发明实施例中的又一种礼物选择界面的示意图;
图7是本发明实施例中的一种数据处理方法的流程图;
图8是本发明实施例中的一种数据处理方法的示意图;
图9是本发明实施例中的另一种数据处理方法的示意图;
图10是本发明实施例中的再一种数据处理方法的示意图;
图11是本发明实施例中的另一种数据处理方法的流程图;
图12是本发明实施例中的再一种数据处理方法的流程图;
图13是本发明实施例中的一种数据处理装置的结构示意图;
图14是本发明实施例中的一种设备的结构示意图。
具体实施方式
下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例
在计算机程序运行过程中,经常需要通过更新操作以使新数据生效,以便后续可以通过读操作使用。根据数据的更新情况和使用情况的不同,可将更新操作和读操作的具体应用场景进行如下划分,其一,更新操作少而读操作多的应用场景;其二,更新操作多而读操作少的应用场景。本发明实施例的技术方案适用于更新操作少而读操作多的应用场景。同时,针对更新操作少而读操作多的应用场景而言需要满足以下条件,具体的:其一,更新操作在同一线程内进行;其二,每次读操作占用时间短且读操作的周期短,而更新操作的更新周期足够长。示例性的,如每次读操作占用0.001秒,1秒内读操作进行的次数超过1000次,而更新操作每隔5分钟或每隔一天进行一次。满足上述条件的更新操作少而读操作多的应用场景,示例性的,如更新礼物配置、更新关键词配置或更新配置文件等。其中,更新礼物配置可以出现于直播平台中,用于向用户提供礼物,以使用户可以根据实际情况向主播发送礼物。如图1所示,示出了一种直播平台的显示界面的示意图。其中,主播正在进行关于户外内容的直播,对于观看此主播所进行的直播内容的用户而言,如果对直播内容满意,可以通过向主播发送礼物的方式进行表达,与主播进行互动。具体可以如图2所示,通过触发显示界面上的礼物控件进入如图3所示的礼物选择界面,礼物选择界面向用户提供了当前周期用户可以选择的礼物。如图4所示,用户选择了礼物“打榜”,如图5所示,通过触发礼物选择界面上的发送控件,将选择的礼物“打榜”发送给主播。可以理解到,经过上述过程完成了一次读操作。还可以理解到,为了提升用户的使用体验,需要周期性地更新向用户提供的可选择的礼物。如图6所示,示出了一种礼物选择界面的示意图,该礼物选择界面示出了下一周期向用户提供的可选择的礼物。根据前述可知,图3也示出了一种礼物选择界面的示意图,与图6所不同的是,图3中的礼物选择界面示出了当前周期向用户提供的可选择的礼物。基于上述,可将由图3转变为图6的过程理解一次更新操作。下面将结合具体实施例对上述更新操作以及读操作进行进一步说明。
图7为本发明实施例提供的一种数据处理方法的流程图,本实施例可适用于更新操作少而读操作多的情况,该方法可以由数据处理装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于设备中,例如典型的是服务器和/或计算机等。如图7所示,该方法具体包括如下步骤:
步骤110、当前周期结束,则获取下一周期数据的更新请求。
在本发明的实施例中,为了使得到的新数据可以生效,需要进行更新操作。在进行更新操作过程中,会出现上一周期、当前周期和下一周期等,相应的,会产生上一周期数据、当前周期数据和下一周期数据等。这里所述的新数据可以理解为下一周期数据,下一周期数据表示的是下一周期可使用的数据。同样的,当前周期数据表示的是当前周期可使用的数据,上一周期数据表示的是上一周期可使用的数据。相对于当前周期数据来说,上一周期数据是已使用过的数据,当前周期数据是正在使用的数据,下一周期数据是将要使用的数据。上述所述的可使用的数据指的是可以通过读操作获取到的数据。需要说明的是,上一周期与当前周期的时间间隔,当前周期与下一周期的时间间隔,这两个时间间隔可以相同,也可以不同,即相邻两个周期的时间间隔可以相同,也可以不同。换句话说,可以是周期性进行更新操作,示例性的,如每隔1天更新一次,也可以是不定期进行更新操作,示例性的,如上一周期与当前周期的时间间隔为5分钟,而当前周期与下一周期的时间间隔为1天。上述相邻两个周期间的时间间隔可以根据实际情况进行设定,在此不作具体限定。
在当前周期结束后,获取下一周期数据的更新请求,基于获取到的更新请求对数据进行更新,即将下一周期数据替换当前周期数据,以使下一周期数据成为可使用的数据。更新请求可以由执行更新操作的线程在确定当前周期结束后生成。
可选的,在上述技术方案的基础上,可以通过如下方式获取下一周期数据:接收下一周期数据的获取请求。将用户输入的最新信息作为下一周期数据。
在本发明的实施例中,最新信息可以理解为距当前周期结束时刻的时间间隔最短的时刻所得到的信息,换句话说,可以将获得信息对应的时间作为确定哪个信息为最新信息的依据,相应的,最新信息对应的时间最晚。示例性的,如在当前周期结束前,接收到三条信息,分别为信息1、信息2和信息3,三条信息对应的时间分别为5点15分,5点10分和5点18分,由于信息3对应的时间最晚,因此将信息3作为最新信息。
上述所述的接收到下一周期数据的获取请求,将用户输入的最新信息作为下一周期数据,具体可理解为:服务器中的其它工作线程接收到下一周期数据的获取请求,将用户输入的最新信息作为下一周期数据。换句话说,其它工作线程可以对获取请求事件进行监测。当监测到获取请求事件被触发,即为接收到下一周期数据的获取请求,此时,将用户输入的最新信息作为下一周期数据。信息可以指用户预先输入的信息,通过触发相关控件,将该信息发送至服务器的其它工作线程,使得服务器的其它工作线程接收到相关控件被触发而生成的获取请求,将用户输入的最新信息作为下一周期数据。其中,用户输入的信息通常位于配置后台,配置后台可以与其它工作线程可以位于同一服务器中,也可以位于不同的服务器中。具体可以根据实际情况进行设定,在此不作具体限定。需要说明的是,这里所述的其它工作线程指的是除更新操作线程外的线程。此外,更新操作线程也可以进行上述操作,具体可以根据实际情况进行设定,在此也不作具体限定。
示例性的,如针对更新礼物配置来说,用户预先将礼物信息输入至配置后台,礼物信息可以包括礼物名称、礼物价值和URL(Uniform Resource Locator,统一资源定位符),通过触发相关控件,将礼物信息发送至服务器的其它工作线程,使得服务器的其它工作线程接收到相关控件触发而生成的获取请求,将用户输入的最新礼物信息作为下一周期数据。
可选的,在上述技术方案的基础上,可以通过如下方式获取下一周期数据:向数据库发送下一周期数据的获取请求。接收来自数据库的信息作为下一周期数据。
在本发明的实施例中,可以预先将信息存储于数据库中,后续可以通过周期性查询数据库的方式,获取下一周期数据。即向数据库发送下一周期数据的获取请求,执行查询操作的线程周期性查询数据库,如果查找到存在更新的信息,则可将该信息发送至更新操作线程。如果未查找到存在更新的信息,则不作处理。相应的,更新操作线程将接收来自数据库的信息作为下一周期数据。当然可以理解到,这里所述的接收来自数据库的信息可以该信息来源于数据库,具体可以为执行查询操作的线程发送的。还可以理解到,上述获取下一周期数据的方式,可能会导致出现下一周期数据与当前周期数据相同的情况。这是由于在某个查询周期内,更新的信息还未存储至数据库,与此同时,当前周期结束,将接收到来自数据库的信息作为下一周期数据,此时,下一周期数据与当前周期数据相同。可以理解到,如果下一周期数据与当期周期数据相同,此时,可以进行更新操作,也可以不进行更新操作,具体可根据实际情况进行设定,在此不作具体限定。
步骤120、根据更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,当前指针是指向正在使用数据的指针变量。
步骤130、将使用指针从指向上一周期数据变更为指向当前周期数据,使用指针是指向已使用数据的指针变量。
在本发明的实施例中,可以考虑采用设置两个指针变量的方式进行更新操作,以解决采用重启方式进行更新操作会短暂影响服务以及采用设置独占锁的方式会导致并发量降低,影响程序性能的问题。在对上述更新操作的方式进行说明前,需要先明确如下几个基本概念,具体的:其一,内存地址。内存地址表示的是内存中存储单元的编号。计算机硬件系统的内存储器中,拥有大量的存储单元,每个存储单元占据一个字节。为了便于管理,必须为每个存储单元编号,这个编号就是存储单元的地址,且每个存储单元都有唯一的地址,需要在地址所标识的存储单元中存放数据;其二,指针。定义变量时,系统会按照其类型为变量分配存储单元,存储单元的首地址称为变量的指针(也称变量的地址)。可以理解到,指针表示的是地址,可将变量的地址称为该变量的指针。相应的,可以通过变量的指针找到该变量;其三,指针变量。指针变量表示的是用来存放其它变量地址的变量,指针变量只有被正确赋值后才能通过它访问指向的变量;其四,系统对变量的访问形式有两种,访问可以理解为取出其值或向其赋值,具体为直接访问和间接访问。其中,直接访问表示的是直接通过变量名访问它对应的地址;间接访问表示的是通过变量的指针访问,或者表示的是通过另一个变量访问该变量的值。可以理解到,指针与指针变量的区别就是变量值与变量的区别,可以把一个指针变量的地址赋值给另一个指针变量。
基于上述,对采用上述更新操作的方式进行进一步说明。具体的:可将设置的两个指针变量分别称为当前指针和使用指针,其中,当前指针指的是指向正在使用数据的指针变量,使用指针指的是指向已使用数据的指针变量。其中,指向表示的是存放××的地址,相应的,上述可以理解为,当前指针指的是存放正在使用数据的地址的指针变量,使用指针指的是存放已使用数据的地址的指针变量。在当前周期,当前周期数据表示的是正在使用数据,上周期数据表示的是已使用数据。因此,在当前周期,当前指针指向当前周期数据,使用指针指向上一周期数据。换句话说,在进行更新操作前,当前指针指向当前周期数据,使用指针指向上一周期数据。在当前周期结束,则获取下一周期数据的更新请求,在下一周期,下一周期数据表示的是正在使用的数据,当前周期数据表示的是已使用数据。因此,需要将当前指针从指向当前周期数据变更为指向下一周期数据,将使用指针从指向上一周期数据变更为指向当前周期数据。此外,可以如果确定上一周期数据为非空数据,则可以将上一周期数据删除。通过上述过程,完成了更新操作。
需要说明的是,本发明实施例的技术方案适用于更新操作少而读操作多的应用场景。因此,可以理解到将相邻两个周期的数据(如下一周期数据和当前周期数据)进行比较,发生变化的部分可能比较小。换句话说,相邻两个周期的数据中大部分是相同的。示例性的,如更新礼物配置为每隔一天增加一个礼物。相应的,可以理解到,相邻两个周期可供读操作使用的数据大部分是相同的。示例性的,如相邻两个周期为当前周期和下一周期,当前周期可供使用的礼物为N个,下一周期可供使用的礼物为N+1个,下一周期可供使用的礼物是在当前周期可供使用的礼物的基础上增加了一个礼物X,其余和当前周期相同。基于上述,在当前周期进行读操作,可能获取到的目标数据为礼物B,在下一周期进行读操作,可能获取到的目标数据也为礼物B。
如图8所示,示出了一种数据处理方法的示意图。更新操作前(即在当前周期),当前指针指向当前周期数据,使用指针指向上一周期数据;更新操作后(即在下一周期),当前指针指向下一周期数据,使用指针指向当前周期数据;更新操作过程(即当前周期结束后),当前指针从指向当前周期数据变更为指向下一周期数据,使用指针从指向上一周期数据变更为指向当前周期数据。可以理解到,如果允许在进行更新操作的同时,也进行读操作,并具体可以采用调用本地指针的方式进行读操作,本地指针为指向当前指针的指针变量,则由于在更新操作前和更新操作后,当前指针变量指向的数据是确定的,因此,进行读操作获取到的目标数据也是确定的,换句话说,不会影响程序的逻辑。对读操作获取到的目标数据产生影响的是更新操作过程,这是由于在更新操作过程中,当前指针变量指向的数据是不定的,当前指针可能还未进行变更,即当前指针还指向当前周期数据;当前指针可能进行了变更,即当前指针从指向当前周期数据变更为指向下一周期数据。也即在更新操作过程中,当前指针可能指向当前周期数据,也可能指向下一周期数据,相应的,由于本地指针是指向当前指针的指针变量,因此,通过调用本地指针获取到的目标数据可能为当前周期数据,也可能为下一周期数据,即在更新操作过程,读操作获取到的目标数据是不定的,可能为当前周期数据,也可能为下一周期数据。但需要说明的是,即使在更新操作过程中,读操作获取到的目标数据是不定的,也不会影响程序的逻辑。这是由于读操作所占据的时间很短,且下一周期数据和当前周期数据发生变化的部分比较小。
需要说明的是,本发明实施例的技术方案由于没有采用独占锁,因此,在进行更新操作的过程中,允许可以同时进行读操作。基于上述,可以理解到,同时进行更新操作和读操作也不会影响程序逻辑。相比于现有技术而言,由于没有采用独占锁,也无需重启程序,因此,提高了并发处理量以及程序访问性能。
本实施例的技术方案,通过当前周期结束,则获取下一周期数据的更新请求,根据更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,当前指针是指向正在使用数据的指针变量,将使用指针从指向上一周期数据变更为指向当前周期数据,使用数据是指向已使用数据的指针变量,实现了无需独占锁或重启程序便可完成更新操作,提高了数据并发处理量以及程序访问性能。
可选的,在上述技术方案的基础上,当前周期结束,则获取下一周期数据的更新请求之后,具体还可以包括:获取数据的读取请求。调用本地指针得到目标数据,本地指针是指向当前指针的指针变量。
在本发明的实施例中,在更新操作进行的同时,也可以进行读操作,即在当前周期结束,则获取下一周期数据的更新请求之后,具体还可以包括:获取数据的读取请求,调用本地指针获取目标数据,其中,本地指针是指向当前指针的指针变量,目标数据是需要使用的数据,读取请求可以是通过执行触发操作生成,触发操作具体形式可以包括滑动操作、点击操作和长按操作中的至少一种,滑动操作又可以包括双指上推操作、单指上推操作、双指下拉操作和单指下拉操作中的至少一种。
可以理解到,由于本地指针是指向当前指针的指针变量,因此,本地指针和当前指针指向同一地址,更具体的是,本地指针指向当前指针进行赋值操作时所指向的地址,上述实现了内存数据的共享。又由于当前指针是指向正在使用数据的指针变量,因此,调用本地指针获取到的目标数据为正在使用数据。如果当前指针指向的数据为当前周期数据,则调用本地指针获取到的目标数据也为当前周期数据;如果当前指针指向的数据为下一周期数据,则调用本地指针获取到的目标数据也为下一周期数据。根据步骤120步骤130的说明,更新操作后,当前指针由指向当前周期数据变更为指向下一周期数据,因此,如果读操作发生在更新操作后,则调用本地指针获取到的目标数据为下一周期数据。更新操作过程,当前指针可能指向当前周期数据,也可能指向下一周期数据,因此,如果读操作发生在更新操作过程,则调用本地指针获取到的目标数据可能为当前周期数据,也可能为下一周期数据。如图9所示,示出了另一种数据处理方法的示意图,其是读操作发生在更新操作后的情况,此时,目标数据为下一周期数据。如图10所示,示出了再一种数据处理方法的示意图,其是读操作发生在更新操作过程的情况,此时,目标数据可能为当前周期数据,也可能为下一周期数据。
需要说明的是,针对读操作发生在更新操作过程的情况,其获取到的目标数据可能为当前周期数据,也可能为下一周期数据,也即读操作获取到的目标数据是不定的,但是也不会影响程序的逻辑。这是由于读操作所占据的时间很短,且下一周期数据和当前周期数据发生变化的部分比较小。
可选的,在上述技术方案的基础上,该方法具体还可以包括:删除上一周期数据。
在本发明的实施例中,可以将使用指针从指向上一周期数据变更为指向当前周期数据,删除上一周期数据。也可以删除上一周期数据,将使用指针从指向上一周期数据变更为指向当前周期数据。具体可以根据实际情况进行设定,在此不作具体限定。可以理解到,采用两个指针变量的方式进行更新操作,相比于采用单个指针变量进行更新操作而言,会将上一周期数据多保留一个周期,这样可以基本确保在当前周期结束,进行下一周期数据更新时,执行删除上一周期数据的操作所删除的上一周期数据是不会再被使用的数据。因而,此时,执行删除操作不会导致程序逻辑出错,提高了程序安全性能。
可选的,在上述技术方案的基础上,上一周期数据为非空数据。
在本发明的实施例中,确定上一周期数据为非空数据的基础上,删除上一周期数据。通常空数据出现在程序初始化过程中,在程序运行过程中,为非空数据。
上述在确定上一周期数据为非空数据的基础上,才删除上一周期数据,避免导致程序逻辑出错,进一步提高了程序安全性能。
图11为本发明实施例提供的另一种数据处理方法的流程图,本实施例可适用于更新操作少而读操作多的情况,该方法可以由数据处理装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于设备中,例如典型的是服务器和/或计算机等。如图11所示,该方法具体包括如下步骤:
步骤210、当前周期结束,则获取下一周期数据的更新请求。
可选的,在上述技术方案的基础上,可以通过如下方式获取下一周期数据:接收下一周期数据的获取请求。将用户输入的最新信息作为下一周期数据。
可选的,在上述技术方案的基础上,可以通过如下方式获取下一周期数据:向数据库发送下一周期数据的获取请求。接收来自数据库的信息作为下一周期数据。
步骤220、根据更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,当前指针是指向正在使用数据的指针变量。
步骤230、将使用指针从指向上一周期数据变更为指向当前周期数据,删除上一周期数据,上一周期数据为非空数据,使用指针是指向已使用数据的指针变量。
步骤240、获取数据的读取请求。
步骤250、调用本地指针得到目标数据,本地指针是指向当前指针的指针变量。
本实施例的技术方案,通过当前周期结束,则获取下一周期数据的更新请求,根据更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,当前指针是指向正在使用数据的指针变量,将使用指针从指向上一周期数据变更为指向当前周期数据,使用数据是指向已使用数据的指针变量,实现了无需独占锁或重启程序便可完成更新操作,提高了数据并发处理量以及程序访问性能。
图12为本发明实施例提供的再一种数据处理方法的流程图,本实施例可适用于更新操作少而读操作多的情况,该方法可以由数据处理装置来执行,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于设备中,例如典型的是服务器和/或计算机等。如图12所示,该方法具体包括如下步骤:
步骤310、当前周期结束,则获取下一周期数据的更新请求。
可选的,在上述技术方案的基础上,可以通过如下方式获取下一周期数据:接收下一周期数据的获取请求。将用户输入的最新信息作为下一周期数据。
可选的,在上述技术方案的基础上,可以通过如下方式获取下一周期数据:向数据库发送下一周期数据的获取请求。接收来自数据库的信息作为下一周期数据。
步骤320、获取数据的读取请求。
步骤330、调用本地指针得到目标数据,本地指针是指向当前指针的指针变量。
步骤340、根据更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,当前指针是指向正在使用数据的指针变量。
步骤350、将使用指针从指向上一周期数据变更为指向当前周期数据,删除上一周期数据,上一周期数据为非空数据,使用指针是指向已使用数据的指针变量。
本实施例的技术方案,通过当前周期结束,则获取下一周期数据的更新请求,根据更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,当前指针是指向正在使用数据的指针变量,将使用指针从指向上一周期数据变更为指向当前周期数据,使用数据是指向已使用数据的指针变量,实现了无需独占锁或重启程序便可完成更新操作,提高了数据并发处理量以及程序访问性能。
图13为本发明实施例提供的一种数据处理装置的结构示意图,本实施例可适用于更新操作少而读操作多的情况,该装置可以采用软件和/或硬件的方式实现,该装置可以配置于设备中,例如典型的是服务器和/或计算机等。如图13所示,该装置具体包括:
更新请求获取模块410,用于当前周期结束,则获取下一周期数据的更新请求。
当前指针指向变更模块420,用于根据更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,当前指针是指向正在使用数据的指针变量。
使用指针指向变更模块430,用于将使用指针从指向上一周期数据变更为指向当前周期数据,使用指针是指向已使用数据的指针变量。
本实施例的技术方案,通过当前周期结束,则获取下一周期数据的更新请求,根据更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,当前指针是指向正在使用数据的指针变量,将使用指针从指向上一周期数据变更为指向当前周期数据,使用数据是指向已使用数据的指针变量,实现了无需独占锁或重启程序便可完成更新操作,提高了数据并发处理量以及程序访问性能。
可选的,在上述技术方案的基础上,该装置具体还可以包括:
读取请求获取模块,用于获取数据的读取请求。
目标数据获取模块,用于调用本地指针得到目标数据,本地指针是指向当前指针的指针变量。
可选的,在上述技术方案的基础上,该装置具体还可以包括:
上一周期数据删除模块,用于删除上一周期数据。
可选的,在上述技术方案的基础上,上一周期数据为非空数据。
可选的,在上述技术方案的基础上,可以通过如下方式获取下一周期数据:
接收下一周期数据的获取请求。
将用户输入的最新信息作为下一周期数据。
可选的,在上述技术方案的基础上,可以通过如下方式获取下一周期数据:
向数据库发送下一周期数据的获取请求。
接收来自数据库的信息作为下一周期数据。
本发明实施例所提供的数据处理装置可执行本发明任意实施例所提供的收据处理方法,具备执行方法相应的功能模块和有益效果。
图14为本发明实施例提供的一种设备的结构示意图。图14示出了适于用来实现本发明实施方式的示例性设备512的框图。图14显示的设备512仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图14所示,设备512以通用计算设备的形式表现。设备512的组件可以包括但不限于:一个或者多个处理器516,系统存储器528,连接于不同系统组件(包括系统存储器528和处理器516)的总线518。
总线518表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备512典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备512访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器528可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)530和/或高速缓存存储器532。设备512可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统534可以用于读写不可移动的、非易失性磁介质(图14未显示,通常称为“硬盘驱动器”)。尽管图14中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线518相连。存储器528可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块542的程序/实用工具540,可以存储在例如存储器528中,这样的程序模块542包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块542通常执行本发明所描述的实施例中的功能和/或方法。
设备512也可以与一个或多个外部设备514(例如键盘、指向设备、显示器524等)通信,还可与一个或者多个使得用户能与该设备512交互的设备通信,和/或与使得该设备512能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口522进行。并且,设备512还可以通过网络适配器520与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器520通过总线518与设备512的其它模块通信。应当明白,尽管图14中未示出,可以结合设备512使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器516通过运行存储在系统存储器528中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种数据处理方法,包括:
当前周期结束,则获取下一周期数据的更新请求。
根据更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,当前指针是指向正在使用数据的指针变量。
将使用指针从指向上一周期数据变更为指向当前周期数据,使用指针是指向已使用数据的指针变量。
当然,本领域技术人员可以理解,处理器还可以实现本发明任意实施例所提供应用于设备的数据处理方法的技术方案。该设备的硬件结构以及功能可参见实施例的内容解释。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的一种数据处理方法,该方法包括:
当前周期结束,则获取下一周期数据的更新请求。
根据更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,当前指针是指向正在使用数据的指针变量。
将使用指针从指向上一周期数据变更为指向当前周期数据,使用指针是指向已使用数据的指针变量。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
当然,本发明实施例所提供的一种计算机可读存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的设备的数据处理方法中的相关操作。对存储介质的介绍可参见实施例中的内容解释。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (7)
1.一种数据处理方法,其特征在于,包括:
当前周期结束,则获取下一周期数据的更新请求;
根据所述更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,所述当前指针是指向正在使用数据的指针变量;
更新操作过程中,所述当前指针指向当前周期数据或者下一周期数据;
将使用指针从指向上一周期数据变更为指向当前周期数据,所述使用指针是指向已使用数据的指针变量;
获取数据的读取请求;
调用本地指针得到目标数据,所述本地指针是指向所述当前指针的指针变量;
通过如下方式获取所述下一周期数据:接收下一周期数据的获取请求,服务器中的其他工作线程接收到下一周期数据的获取请求,将用户输入的最新信息作为下一周期数据。
2.根据权利要求1所述的方法,其特征在于,还包括:
删除上一周期数据。
3.根据权利要求2所述的方法,其特征在于,所述上一周期数据为非空数据。
4.根据权利要求1-3任一所述的方法,其特征在于,通过如下方式获取所述下一周期数据:
向数据库发送下一周期数据的获取请求;
接收来自所述数据库的信息作为所述下一周期数据。
5.一种数据处理装置,其特征在于,包括:
更新请求获取模块,用于当前周期结束,则获取下一周期数据的更新请求;
当前指针指向变更模块,用于根据所述更新请求,将当前指针从指向当前周期数据变更为指向下一周期数据,所述当前指针是指向正在使用数据的指针变量;
更新操作过程中,所述当前指针指向当前周期数据或者下一周期数据;
使用指针指向变更模块,用于将使用指针从指向上一周期数据变更为指向当前周期数据,所述使用指针是指向已使用数据的指针变量;
读取请求获取模块,用于获取数据的读取请求;
目标数据获取模块,用于调用本地指针得到目标数据,所述本地指针是指向所述当前指针的指针变量;
通过如下方式获取所述下一周期数据:接收下一周期数据的获取请求,服务器中的其他工作线程接收到下一周期数据的获取请求,将用户输入的最新信息作为下一周期数据。
6.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4任一所述的方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811168541.XA CN109271193B (zh) | 2018-10-08 | 2018-10-08 | 一种数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811168541.XA CN109271193B (zh) | 2018-10-08 | 2018-10-08 | 一种数据处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109271193A CN109271193A (zh) | 2019-01-25 |
CN109271193B true CN109271193B (zh) | 2023-01-13 |
Family
ID=65195962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811168541.XA Active CN109271193B (zh) | 2018-10-08 | 2018-10-08 | 一种数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109271193B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109976675B (zh) * | 2019-04-01 | 2023-02-03 | 广州市百果园信息技术有限公司 | 一种数据更新、读取方法、装置、设备及存储介质 |
CN112860719B (zh) * | 2021-02-05 | 2023-09-29 | 北京百度网讯科技有限公司 | 数据处理方法、装置及电子设备 |
CN116662276B (zh) * | 2023-06-06 | 2024-03-05 | 中科三清科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158871A (zh) * | 2007-11-12 | 2008-04-09 | 浙江大学 | 集散控制系统操作员站内存数据库结构存储的同步方法 |
CN102169420A (zh) * | 2011-04-18 | 2011-08-31 | 杭州海康威视系统技术有限公司 | 缓冲区循环读写方法及装置 |
CN104184725A (zh) * | 2014-07-25 | 2014-12-03 | 汉柏科技有限公司 | 一种入侵防御系统的引擎检测数据更新方法及装置 |
CN104216767A (zh) * | 2014-09-18 | 2014-12-17 | 东软集团股份有限公司 | 多线程之间访问共享数据的方法及装置 |
CN107391281A (zh) * | 2017-08-09 | 2017-11-24 | 腾讯科技(深圳)有限公司 | 一种服务器的数据处理方法、装置和存储介质 |
CN108153679A (zh) * | 2016-12-05 | 2018-06-12 | 腾讯科技(深圳)有限公司 | 一种数据加载、数据处理的方法、装置及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729304B (zh) * | 2012-10-11 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
-
2018
- 2018-10-08 CN CN201811168541.XA patent/CN109271193B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158871A (zh) * | 2007-11-12 | 2008-04-09 | 浙江大学 | 集散控制系统操作员站内存数据库结构存储的同步方法 |
CN102169420A (zh) * | 2011-04-18 | 2011-08-31 | 杭州海康威视系统技术有限公司 | 缓冲区循环读写方法及装置 |
CN104184725A (zh) * | 2014-07-25 | 2014-12-03 | 汉柏科技有限公司 | 一种入侵防御系统的引擎检测数据更新方法及装置 |
CN104216767A (zh) * | 2014-09-18 | 2014-12-17 | 东软集团股份有限公司 | 多线程之间访问共享数据的方法及装置 |
CN108153679A (zh) * | 2016-12-05 | 2018-06-12 | 腾讯科技(深圳)有限公司 | 一种数据加载、数据处理的方法、装置及设备 |
CN107391281A (zh) * | 2017-08-09 | 2017-11-24 | 腾讯科技(深圳)有限公司 | 一种服务器的数据处理方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109271193A (zh) | 2019-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078147B (zh) | 一种缓存数据的处理方法、装置、设备及存储介质 | |
CN107948314B (zh) | 基于规则文件的业务处理方法、装置及服务器 | |
CN109144696B (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
CN108388599B (zh) | 电子装置、数据迁移及调用方法及存储介质 | |
US10506043B2 (en) | Rapid client-side component processing based on component relationships | |
EP2921975B1 (en) | Determining and extracting changed data from a data source | |
CN109951547B (zh) | 事务请求并行处理方法、装置、设备和介质 | |
US10606516B2 (en) | Systems and methods for I/O prioritization in NVMe-compliant storage devices | |
CN109271193B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN109144697B (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
CN109710695B (zh) | 事务请求有效性识别和发起方法、装置、设备和介质 | |
CN110427386B (zh) | 数据处理方法、装置及计算机存储介质 | |
CN113438184B (zh) | 网卡的队列管理方法、装置及电子设备 | |
US20140325177A1 (en) | Heap management using dynamic memory allocation | |
CN113961510B (zh) | 一种文件处理方法、装置、设备及存储介质 | |
CN110990346A (zh) | 基于区块链的文件数据处理方法、装置、设备及存储介质 | |
US9448845B2 (en) | Extendible input/output data mechanism for accelerators | |
US20160188717A1 (en) | Network crawling prioritization | |
CN110765394A (zh) | so文件加载方法、装置、存储介质及终端设备 | |
CN110866011B (zh) | 数据表同步方法、装置、计算机设备和存储介质 | |
CN112860953A (zh) | 图数据库的数据导入方法、装置、设备及存储介质 | |
US20110302377A1 (en) | Automatic Reallocation of Structured External Storage Structures | |
CN112306413B (zh) | 用于访问内存的方法、装置、设备以及存储介质 | |
CN110753136B (zh) | 域名解析方法、装置、设备及存储介质 | |
CN110162542B (zh) | 基于cassandra的数据翻页方法、装置、计算机设备和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231011 Address after: 31a, 15th floor, building 30, maple commercial city, bangrang Road, Brazil Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd. Address before: 511442 23-39 / F, building B-1, Wanda Plaza North, Wanbo business district, 79 Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd. |