CN110618868A - 对数据进行批量写入的方法、装置以及存储介质 - Google Patents
对数据进行批量写入的方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN110618868A CN110618868A CN201910810067.4A CN201910810067A CN110618868A CN 110618868 A CN110618868 A CN 110618868A CN 201910810067 A CN201910810067 A CN 201910810067A CN 110618868 A CN110618868 A CN 110618868A
- Authority
- CN
- China
- Prior art keywords
- target data
- thread
- coroutine
- writing
- coroutines
- 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
Classifications
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种对数据进行批量写入的方法、装置以及存储介质。其中,该方法,包括:确定待写入的多个目标数据;启动用于对所述多个目标数据进行写入操作的线程,其中所述线程中设置有与所述多个目标数据分别对应的多个协程,其中所述多个协程用于将相应的目标数据写入相应位置;以及通过所述线程将所述线程占用的资源分配至所述多个协程,并调用所述多个协程对所述多个目标数据进行批量写入操作。从而可以提高执行效率。
Description
技术领域
本申请涉及计算机数据处理领域,特别是涉及一种对数据进行批量写入的方法、装置以及存储介质。
背景技术
在计算机领域中,为了写入大批量的数据,产生了数据批量写入任务,即在计算机上预先设置程序或者命令,执行系列程序的作业。利用数据批量写入,能够很好的利用计算机资源,并且不需要时刻有人工监视和干预,从而降低了人工开销。依靠上述优点,数据批量写入在计算机领域中得到了广泛的应用。
在现有技术中,常用的数据批量写入,基本上通过多线程实现数据的批量写入。但是多线程实现数据的批量写入时需要线程切换,线程切换又需要开销,导致执行效率很低。
针对上述的现有技术中存在的通过多线程实现数据的批量写入时需要线程切换,然而线程切换又需要开销,导致执行效率很低的技术问题,目前尚未提出有效的解决方案。
发明内容
本公开的实施例提供了一种对数据进行批量写入的方法、装置以及存储介质,以至少解决现有技术中存在的通过多线程实现数据的批量写入时需要线程切换,线程切换又需要开销,导致执行效率很低的技术问题。
根据本公开实施例的一个方面,提供了一种对数据进行批量写入的方法,包括:确定待写入的多个目标数据;启动用于对多个目标数据进行写入操作的线程,其中线程中设置有与多个目标数据分别对应的多个协程,其中多个协程用于将相应的目标数据写入相应位置;以及通过线程将线程占用的资源分配至多个协程,并调用多个协程对多个目标数据进行批量写入操作。
根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
根据本公开实施例的另一个方面,还提供了一种对数据进行批量写入的装置,包括:确定模块,用于确定待写入的多个目标数据;启动模块,用于启动用于对多个目标数据进行写入操作的线程,其中线程中设置有与多个目标数据分别对应的多个协程,其中多个协程用于将相应的目标数据写入相应位置;以及写入模块,用于通过线程将线程占用的资源分配至多个协程,并调用多个协程对多个目标数据进行批量写入操作。
根据本公开实施例的另一个方面,还提供了一种对数据进行批量写入装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:确定待写入的多个目标数据;启动用于对多个目标数据进行写入操作的线程,其中线程中设置有与多个目标数据分别对应的多个协程,其中多个协程用于将相应的目标数据写入相应位置;以及通过线程将线程占用的资源分配至多个协程,并调用多个协程对多个目标数据进行批量写入操作。
在本公开实施例中,采用线程中设置的多个目标数据的多个协程,通过多线程调用多个协程将多个目标数据写入,将线程占用的资源分配至多个协程的第一协程,其中第一协程用于写入多个目标数据中的第一目标数据。当第一协程阻塞时,系统将第一协程挂起,将上述资源分配给第二协程,将第二目标数据写入至相应位置。当第一协程完成阻塞后,再将资源重新分配至第一协程,继续将第一目标数据写入相应位置。从而实现了不需要切换线程,可以提高执行效率的技术效果。进而解决了现有技术中存在的通过多线程实现数据的批量写入时需要线程切换,线程切换又需要开销,导致执行效率很低的技术问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是用于实现根据本公开实施例1所述的方法的计算机终端的硬件结构框图;
图2是根据本公开实施例1所述的对数据进行批量写入的示意图;
图3是根据本公开实施例1的第一个方面所述的对数据进行批量写入的方法的流程示意图;
图4是根据本公开实施例2所述的对数据进行批量写入的装置的示意图;
以及
图5是根据本公开实施例3所述的对数据进行批量写入的装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本实施例,还提供了一种对数据进行批量写入的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在服务器或者类似的计算设备中执行。图1示出了一种用于实现对数据进行批量写入的计算设备10的硬件结构框图。如图1所示,计算设备10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备10中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本公开实施例中的对数据进行批量写入的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的对数据进行批量写入的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备10的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备10可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
图2是根据本实施例所述的对数据进行批量写入的方法的示意图。参照图2所示,该例如图1所示的计算设备10的系统中设置有用于对数据进行写入的程序,从而可以启动线程对多个目标数据进行写入操作,例如可以将多个目标数据写入到相应位置。
在上述运行环境下,根据本实施例的第一个方面,提供了一种对数据进行批量写入的方法。图3示出了该方法的流程示意图,参考图3所示,该方法包括:
S302:确定待写入的多个目标数据;
S304:启动用于对多个目标数据进行写入操作的线程,其中线程中设置有与多个目标数据分别对应的多个协程,其中多个协程用于将相应的目标数据写入相应位置;以及
S306:通过线程将线程占用的资源分配至多个协程,并调用多个协程对多个目标数据进行批量写入操作。
正如前面背景技术中所述的,现有的技术中常用的数据批量写入,基本上通过多线程实现数据的批量写入。但是多线程实现数据的批量写入时需要线程切换,线程切换又需要开销,导致执行效率很低。
针对上述背景技术中存在的问题,本实施例提供的一种对数据进行批量写入的方法。具体地,参考图2所示,首先,计算设备10确定待写入的多个目标数据,例如目标数据1-目标数据n。然后,计算设备10启动用于对多个目标数据(目标数据1-目标数据n)对应的多个协程(例如,协程1-协程n)。其中,多个协程(协程1-协程n)用于将相应的目标数据(目标数据1-目标数据n)写入相应位置,即与各个目标数据相应的目的端。
然后,计算设备10通过线程将线程占用的资源分配至多个协程1-n,并调用多个协程(协程1-协程n)将多个目标数据(目标数据1-目标数据n)批量写入各自对应的目的端。
从而计算设备10通过线程中设置的多个协程,将多个目标数据写入。因为协程可以顺序调用异步代码,不需要切换和开销,从而可以提高执行效率。进而解决了现有技术中存在的通过多线程实现数据的批量写入时需要线程切换,线程切换又需要开销,导致执行效率很低的技术问题。
可选地,调用多个协程对多个目标数据进行批量写入操作,包括:通过线程,将线程占用的资源分配至多个协程中的第一协程,其中第一协程用于将多个目标数据中的第一目标数据写入相应位置;响应于与第一协程相关的阻塞,通过线程将第一协程挂起;通过线程,将资源分配至用于将多个目标数据中的第二目标数据写入相应位置的第二协程;以及通过线程调用第二协程,并利用资源将第二目标数据写入相应位置。
具体地,计算设备10可以调用多个协程(协程1-协程n)对多个目标数据(目标数据1-目标数据n)进行批量写入操作。首先计算设备10可以通过线程将线程占用的资源分配至多个协程(协程1-协程n)中的第一协程(协程1)。其中,第一协程用于将多个目标数据(目标数据1-目标数据n)中的第一目标数据(目标数据1)写入相应位置(目的端)。接下来第一协程(协程1)可能会遇到阻塞(例如网络传递请求带来的延时,其中可能包括了TCP/IP的一系列过程等等),从而无法继续对目标数据1进行写入操作。从而此时,分配至第一协程(协程1)的资源会被闲置。
在此情况下,为了避免资源的浪费,计算设备10可以通过线程,将协程1暂时挂起,并且将分配给协程1的资源分配至用于将多个目标数据中的第二目标数据写入相应位置的第二协程,即将之前分配给第一协程(协程1)并且第一协程(协程1)没有利用的资源重新分配给第二协程(协程2)。其中,第二协程(协程2)用于将多个目标数据(目标数据1-目标数据n)中的第二目标数据(目标数据2)写入相应的位置(目的端)。
从而当占用资源的第一协程(协程1)发生阻塞,处于挂起状态时。计算设备10可以通过线程将分配给第一协程的资源重新分配给第二协程(协程2)。进而,计算设备10通过第二协程继续进行批量数据的写入。从而,可以充分利用资源,避免资源的浪费,并且也提高了批量数据写入过程中的执行效率。
可选地,将线程占用的资源分配至多个协程中的第一协程的操作,包括:将线程占用的处理器资源以及内存资源分配至第一协程。
具体地,计算设备10在进行批量数据写入时,可以将线程占用的处理器资源以及内存资源分配至第一协程。即线程占用的资源包括处理器资源和内存资源。从而可以利用处理器资源和内存资源,更迅速的将目的数据写入相应位置,提高执行效率。当然,以上只是示例性地说明线程占用的资源,除此以外,线程占用的资源还可以包括其他的资源,此处不再赘述。
可选地,调用多个协程对多个目标数据进行批量写入操作,还包括:响应于阻塞的结束,通过线程将第二协程挂起;通过线程,将资源重新分配至第一协程;以及通过线程,调用第一协程,并利用资源继续将第一目标数据写入相应位置。
具体地,当(第一协程的)阻塞结束时,也就是意味着第一协程可以继续进行数据的写入。因此,响应于阻塞的结束,计算设备10可以通过线程将第二协程挂起。然后,计算设备10可以来通过线程,将分配给第二协程的资源重新分配给第一协程(协程1),通过第一协程(协程1)继续将第一目标数据(目标数据1)写入相应位置(目的端)。
从而通过这种方式,可以充分提高数据批量写入过程中对资源的利用率。例如,在协程1写入目标数据1的过程中,当协程1遇到阻塞时(例如发出请求、等待回复以及其他TCP/IP操作等),协程1将不能继续执行写入操作。此时为了避免资源的浪费,计算设备10通过线程将协程1挂起,并且将分配给协程1的资源分配给协程2,并且调用协程2进行目标数据2的写入。当然,如果在协程2写入目标数据2的过程中也遇到阻塞,计算设备10也可以将协程2挂起,从而将资源分配给协程3,从而利用协程3写入目标数据3,以此类推。
然后,当协程1的阻塞消除时,计算设备10会将资源重新分配至协程1,从而利用协程1继续完成数据的写入。
从而通过这种方式,可实现对资源的充分利用,从而避免资源的浪费,提高了批量写入的执行效率。
此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质104。所述存储介质104包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
从而根据本实施例,计算设备通过线程中设置的多个协程,将多个目标数据写入。因为协程可以顺序调用异步代码,不需要切换和开销,从而可以提高执行效率。进而解决了现有技术中存在的通过多线程实现数据的批量写入时需要线程切换,线程切换又需要开销,导致执行效率很低的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
图4示出了根据本实施例的第一个方面所述的对数据进行批量写入的装置400,该装置400与根据实施例1的第一个方面所述的方法相对应。参考图4所示,该装置400包括:确定模块410,用于确定待写入的多个目标数据;启动模块420,用于启动用于对多个目标数据进行写入操作的线程,其中线程中设置有与多个目标数据分别对应的多个协程,其中多个协程用于将相应的目标数据写入相应位置;以及写入模块430,用于通过线程将线程占用的资源分配至多个协程,并调用多个协程对多个目标数据进行批量写入操作。
可选地,写入模块430,包括:第一分配子模块,用于通过线程,将线程占用的资源分配至多个协程中的第一协程,其中第一协程用于将多个目标数据中的第一目标数据写入相应位置;响应子模块,用于响应于与第一协程相关的阻塞,通过线程将第一协程挂起;第二分配子模块,用于通过线程,将资源分配至用于将多个目标数据中的第二目标数据写入相应位置的第二协程;以及第一调用子模块,用于通过线程调用第二协程,并利用资源将第二目标数据写入相应位置。
可选地,第一分配子模块,包括:分配子单元,用于将线程占用的处理器资源以及内存资源分配至第一协程。
可选地,写入模块430,还包括:挂起子模块,用于响应于阻塞的结束,通过线程将第二协程挂起;第三分配子模块,用于通过线程,将资源重新分配至第一协程;以及第二调用子模块,用于通过线程,调用第一协程,并利用资源继续将第一目标数据写入相应位置。
从而根据本实施例,可以通过线程中设置的多个协程,将多个目标数据写入。因为协程可以顺序调用异步代码,不需要切换和开销,从而可以提高执行效率。进而解决了现有技术中存在的通过多线程实现数据的批量写入时需要线程切换,线程切换又需要开销,导致执行效率很低的技术问题。
实施例3
图5示出了根据本实施例所述的对数据进行批量写入的装置500,该装置500与根据实施例1的第一个方面所述的方法相对应。参考图5所示,该装置500包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:确定待写入的多个目标数据;启动用于对多个目标数据进行写入操作的线程,其中线程中设置有与多个目标数据分别对应的多个协程,其中多个协程用于将相应的目标数据写入相应位置;以及通过线程将线程占用的资源分配至多个协程,并调用多个协程对多个目标数据进行批量写入操作。
可选地,调用多个协程对多个目标数据进行批量写入操作,包括:通过线程,将线程占用的资源分配至多个协程中的第一协程,其中第一协程用于将多个目标数据中的第一目标数据写入相应位置;响应于与第一协程相关的阻塞,通过线程将第一协程挂起;通过线程,将资源分配至用于将多个目标数据中的第二目标数据写入相应位置的第二协程;以及通过线程调用第二协程,并利用资源将第二目标数据写入相应位置。
可选地,将线程占用的资源分配至多个协程中的第一协程的操作,包括:将线程占用的处理器资源以及内存资源分配至第一协程。
可选地,调用多个协程对多个目标数据进行批量写入操作,还包括:响应于阻塞的结束,通过线程将第二协程挂起;通过线程,将资源重新分配至第一协程;以及通过线程,调用第一协程,并利用资源继续将第一目标数据写入相应位置。
从而根据本实施例,可以通过线程中设置的多个协程,将多个目标数据写入。因为协程可以顺序调用异步代码,不需要切换和开销,从而可以提高执行效率。进而解决了现有技术中存在的通过多线程实现数据的批量写入时需要线程切换,线程切换又需要开销,导致执行效率很低的技术问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种对数据进行批量写入的方法,其特征在于,包括:
确定待写入的多个目标数据;
启动用于对所述多个目标数据进行写入操作的线程,其中所述线程中设置有与所述多个目标数据分别对应的多个协程,其中所述多个协程用于将相应的目标数据写入相应位置;以及
通过所述线程将所述线程占用的资源分配至所述多个协程,并调用所述多个协程对所述多个目标数据进行批量写入操作。
2.根据权利要求1所述的方法,其特征在于,调用所述多个协程对所述多个目标数据进行批量写入操作,包括:
通过所述线程,将所述线程占用的资源分配至所述多个协程中的第一协程,其中所述第一协程用于将所述多个目标数据中的第一目标数据写入相应位置;
响应于与所述第一协程相关的阻塞,通过所述线程将所述第一协程挂起;
通过所述线程,将所述资源分配至用于将所述多个目标数据中的第二目标数据写入相应位置的第二协程;以及
通过所述线程调用所述第二协程,并利用所述资源将所述第二目标数据写入相应位置。
3.根据权利要求2所述的方法,其特征在于,将所述线程占用的资源分配至所述多个协程中的第一协程的操作,包括:将所述线程占用的处理器资源以及内存资源分配至所述第一协程。
4.根据权利要求2或3所述的方法,其特征在于,调用所述多个协程对所述多个目标数据进行批量写入操作,还包括:
响应于所述阻塞的结束,通过所述线程将所述第二协程挂起;
通过所述线程,将所述资源重新分配至所述第一协程;以及
通过所述线程,调用所述第一协程,并利用所述资源继续将所述第一目标数据写入相应位置。
5.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1至4中任意一项所述的方法。
6.一种对数据进行批量写入的装置,其特征在于,包括:
确定模块,用于确定待写入的多个目标数据;
启动模块,用于启动用于对所述多个目标数据进行写入操作的线程,其中所述线程中设置有与所述多个目标数据分别对应的多个协程,其中所述多个协程用于将相应的目标数据写入相应位置;以及
写入模块,用于通过所述线程将所述线程占用的资源分配至所述多个协程,并调用所述多个协程对所述多个目标数据进行批量写入操作。
7.根据权利要求6所述的装置,其特征在于,所述写入模块,包括:
第一分配子模块,用于通过所述线程,将所述线程占用的资源分配至所述多个协程中的第一协程,其中所述第一协程用于将所述多个目标数据中的第一目标数据写入相应位置;
响应子模块,用于响应于与所述第一协程相关的阻塞,通过所述线程将所述第一协程挂起;
第二分配子模块,用于通过所述线程,将所述资源分配至用于将所述多个目标数据中的第二目标数据写入相应位置的第二协程;以及
第一调用子模块,用于通过所述线程调用所述第二协程,并利用所述资源将所述第二目标数据写入相应位置。
8.根据权利要求7所述的装置,其特征在于,所述第一分配子模块,包括:分配子单元,用于将所述线程占用的处理器资源以及内存资源分配至所述第一协程。
9.根据权利要求7或8所述的装置,其特征在于,所述写入模块,还包括:
挂起子模块,用于响应于所述阻塞的结束,通过所述线程将所述第二协程挂起;
第三分配子模块,用于通过所述线程,将所述资源重新分配至所述第一协程;以及
第二调用子模块,用于通过所述线程,调用所述第一协程,并利用所述资源继续将所述第一目标数据写入相应位置。
10.一种对数据进行批量写入的装置,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
确定待写入的多个目标数据;
启动用于对所述多个目标数据进行写入操作的线程,其中所述线程中设置有与所述多个目标数据分别对应的多个协程,其中所述多个协程用于将相应的目标数据写入相应位置;以及
通过所述线程将所述线程占用的资源分配至所述多个协程,并调用所述多个协程对所述多个目标数据进行批量写入操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910810067.4A CN110618868A (zh) | 2019-08-29 | 2019-08-29 | 对数据进行批量写入的方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910810067.4A CN110618868A (zh) | 2019-08-29 | 2019-08-29 | 对数据进行批量写入的方法、装置以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110618868A true CN110618868A (zh) | 2019-12-27 |
Family
ID=68922698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910810067.4A Pending CN110618868A (zh) | 2019-08-29 | 2019-08-29 | 对数据进行批量写入的方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110618868A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416353A (zh) * | 2020-08-10 | 2021-02-26 | 上海幻电信息科技有限公司 | 渠道包打包方法、装置及计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142858A (zh) * | 2013-11-29 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 阻塞任务调度方法及装置 |
CN106598801A (zh) * | 2015-10-15 | 2017-04-26 | 中兴通讯股份有限公司 | 一种协程监控方法及装置 |
CN107329812A (zh) * | 2017-06-09 | 2017-11-07 | 腾讯科技(深圳)有限公司 | 一种运行协程的方法和装置 |
CN109298922A (zh) * | 2018-08-30 | 2019-02-01 | 百度在线网络技术(北京)有限公司 | 并行任务处理方法、协程框架、设备、介质和无人车 |
-
2019
- 2019-08-29 CN CN201910810067.4A patent/CN110618868A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142858A (zh) * | 2013-11-29 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 阻塞任务调度方法及装置 |
CN106598801A (zh) * | 2015-10-15 | 2017-04-26 | 中兴通讯股份有限公司 | 一种协程监控方法及装置 |
CN107329812A (zh) * | 2017-06-09 | 2017-11-07 | 腾讯科技(深圳)有限公司 | 一种运行协程的方法和装置 |
CN109298922A (zh) * | 2018-08-30 | 2019-02-01 | 百度在线网络技术(北京)有限公司 | 并行任务处理方法、协程框架、设备、介质和无人车 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416353A (zh) * | 2020-08-10 | 2021-02-26 | 上海幻电信息科技有限公司 | 渠道包打包方法、装置及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3702915B1 (en) | Data processing method and device, storage medium, processor, and system | |
CN108376102B (zh) | 资源分配的系统、方法及非暂时性计算机可读媒体 | |
CN112416969B (zh) | 分布式数据库中的并行任务调度系统 | |
CN110688146A (zh) | 对监控系统进行动态配置的方法、装置以及存储介质 | |
US20180246772A1 (en) | Method and apparatus for allocating a virtual resource in network functions virtualization network | |
CN115033352A (zh) | 多核处理器任务调度方法、装置及设备、存储介质 | |
CN110290399A (zh) | 一种数据分发方法、系统、装置及计算机可读存储介质 | |
CN111984557A (zh) | 数据处理方法、装置和系统 | |
CN108304272B (zh) | 一种数据io请求的处理方法及装置 | |
CN110955512A (zh) | 缓存处理方法、装置、存储介质、处理器及计算设备 | |
CN112395075A (zh) | 资源的处理方法、装置以及资源调度系统 | |
EP4318235A1 (en) | Kubernetes cluster load balance handling method and apparatus, and storage medium | |
CN111158905A (zh) | 调整资源的方法和装置 | |
CN110618868A (zh) | 对数据进行批量写入的方法、装置以及存储介质 | |
CN114637574A (zh) | 基于半虚拟化设备的数据处理方法、装置和系统 | |
CN112069190B (zh) | 一种分批数据获取方法、装置、设备及介质 | |
CN111858035A (zh) | 一种fpga设备分配方法、装置、设备及存储介质 | |
US20240220235A1 (en) | Virtual machine hot-upgrading method and apparatus, device, and storage medium | |
CN110401939A (zh) | 一种低功耗蓝牙控制器链路层装置 | |
CN115794417A (zh) | 内存管理方法及装置 | |
CN110874264A (zh) | 实例热迁移方法及装置、存储介质、处理器 | |
CN110633188A (zh) | 暂停对应用程序的代码进行拦截和监控的方法以及装置 | |
CN110971696B (zh) | 一种实现虚拟电子卡通讯的系统和方法 | |
CN113110950A (zh) | 处理器及通信方法、存储介质及计算设备 | |
CN111245794B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191227 |