CN111274038A - 数据处理方法和装置、电子设备及计算机可读存储介质 - Google Patents

数据处理方法和装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN111274038A
CN111274038A CN202010074658.2A CN202010074658A CN111274038A CN 111274038 A CN111274038 A CN 111274038A CN 202010074658 A CN202010074658 A CN 202010074658A CN 111274038 A CN111274038 A CN 111274038A
Authority
CN
China
Prior art keywords
thread
threads
time
data processing
size
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
CN202010074658.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.)
Enyike Beijing Data Technology Co ltd
Original Assignee
Enyike Beijing Data Technology Co ltd
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 Enyike Beijing Data Technology Co ltd filed Critical Enyike Beijing Data Technology Co ltd
Priority to CN202010074658.2A priority Critical patent/CN111274038A/zh
Publication of CN111274038A publication Critical patent/CN111274038A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread 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)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供的数据处理方法和装置、电子设备及计算机可读存储介质,涉及数据处理技术领域。首先,根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小。其次,根据所述线程池大小对所述多个线程进行异步处理。通过上述方法,可以提高数据处理的效率。

Description

数据处理方法和装置、电子设备及计算机可读存储介质
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种数据处理方法和装置、电子设备及计算机可读存储介质。
背景技术
在绝大多数的软件项目中都有定时生成报表、文件、计算结果等批处理任务,在业务逻辑复杂或业务链较长时,数据库查询并行执行等待时间较久,系统性能闲置比较严重,在数据量巨大的情况下可能会出现周期内处理不完的情况。
因此,经发明人研究发现,在现有技术中进行同步查询资源闲置严重,从而存在着数据处理的效率低的问题。
发明内容
有鉴于此,本申请的目的在于提供一种数据处理方法和装置、电子设备及计算机可读存储介质,以改善现有技术中存在的问题。
为实现上述目的,本申请实施例采用如下技术方案:
一种数据处理方法,包括:
根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小;
根据所述线程池大小对所述多个线程进行异步处理。
在本申请实施例较佳的选择中,所述根据所述线程池大小对所述多个线程进行异步处理的步骤,包括:
根据所述线程池大小计算得到进行线程处理的数量阈值;
根据所述数量阈值对所述多个线程分别进行异步处理。
在本申请实施例较佳的选择中,所述根据所述数量阈值对所述多个线程分别进行异步处理的步骤,包括:
判断所述多个线程的数量是否大于所述数量阈值;
若所述多个线程的数量大于所述数量阈值,则根据所述数量阈值对所述多个线程进行分组处理,得到多个线程组,并分别对每个线程组进行异步处理;
若所述多个线程的数量不大于所述数量阈值,则直接对所述多个线程进行异步处理。
在本申请实施例较佳的选择中,所述根据所述线程池大小对所述多个线程进行异步处理的步骤,包括:
通过预设的Future模型和CountDownLatch组件根据所述线程池大小对所述多个线程进行异步处理。
在本申请实施例较佳的选择中,所述根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小的步骤,包括:
根据多个线程的线程IO时间平均值、线程CPU时间平均值和对应的CPU数目,计算得到包括所述多个线程的线程池大小。
在本申请实施例较佳的选择中,所述多个线程包括第一线程,所述根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小的步骤,包括:
根据所述第一线程的线程IO时间、线程CPU时间和多个线程对应的CPU数目,计算得到包括所述多个线程的线程池大小。
在本申请实施例较佳的选择中,在计算得到包括所述多个线程的线程池大小之前,所述数据处理方法还包括:
获取多个线程的线程IO时间、线程CPU时间和对应的CPU数目。
本申请实施例还提供了一种数据处理装置,包括:
线程池计算模块,用于根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小;
线程处理模块,用于根据所述线程池大小对所述多个线程进行异步处理。
本申请实施例还提供了一种电子设备,包括存储器和处理器,所述处理器用于执行所述存储器中存储的可执行的计算机程序,以实现上述的数据处理方法。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现上述数据处理方法的步骤。
本申请实施例提供的数据处理方法和装置、电子设备及计算机可读存储介质,根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小,以对所述多个线程进行异步处理,从而避免了现有技术中进行同步查询资源闲置严重,所导致的数据处理的效率低的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的电子设备的结构框图。
图2为本申请实施例提供的数据处理方法的流程示意图。
图3为本申请实施例提供的数据处理方法的另一流程示意图。
图4为本申请实施例提供的数据处理装置的结构框图。
图标:10-电子设备;12-存储器;14-处理器;100-数据处理装置;110-线程池计算模块;120-线程处理模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
如图1所示,本申请实施例提供了一种电子设备10。其中,所述电子设备10可以包括存储器12、处理器14和数据处理装置100。
详细地,所述存储器12和处理器14之间直接或间接地电性连接,以实现数据的传输或交互。例如,相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述数据处理装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器12中的软件功能模块。所述处理器14用于执行所述存储器12中存储的可执行的计算机程序,例如,所述数据处理装置100所包括的软件功能模块及计算机程序等,以实现数据处理方法。
其中,所述存储器12可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
所述处理器14可能是一种集成电路芯片,具有信号的处理能力。上述的处理器14可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、片上系统(System on Chip,SoC)等。
可以理解,图1所示的结构仅为示意,所述电子设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
结合图2,本申请实施例还提供一种可应用于上述电子设备10的数据处理方法。其中,所述数据处理方法有关的流程所定义的方法步骤可以由所述电子设备10实现,下面将对图2所示的具体流程进行详细阐述。
步骤S110,根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小。
在本申请实施例中,在得到所述多个线程的线程IO时间、线程CPU时间和对应的CPU数目之后,可以根据所述多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小。
步骤S120,根据所述线程池大小对所述多个线程进行异步处理。
在本申请实施例中,通过步骤S110得到所述线程池大小之后,可以根据根据所述线程池大小对所述多个线程进行异步处理。
通过上述方法,根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小,以对所述多个线程进行异步处理,从而避免了现有技术中进行同步查询资源闲置严重,所导致的数据处理的效率低的问题。
在通过步骤S110计算得到包括所述多个线程的线程池大小之前,所述数据处理方法还可以包括以下子步骤:
获取多个线程的线程IO时间、线程CPU时间和对应的CPU数目。
详细地,所述线程IO时间可以指线程中进行数据库数据交互、文件上传下载、网络数据传输等数据输入输出的消耗时间,所述线程CPU时间可以指线程中进行上下文切换等运算的消耗时间,所述多个线程对应的CPU数目可以指执行所述多个线程的处理器内核数目。
其中,线程是操作系统最小的调度单位,进程是资源(比如:内存)分配的最小单位。进程可能有多个子任务,比如微信要接受消息,发送消息,这些子任务就是线程。资源分配给进程,线程共享进程资源。
并且,物理CPU是指硬件的核心数,例如计算机可以有两个CPU。逻辑CPU是逻辑上的,简单理解为在逻辑上模拟出来的核心数,可以是1个物理CPU模拟出一个逻辑CPU,也可以是一个物理CPU模拟出两个逻辑CPU,相当于两个CPU的效果。CPU程数是指在同一时刻设备能并行执行的线程数,线程数=物理CPU*逻辑CPU。例如,若计算机A的物理CPU为2,逻辑CPU为2,即代表在此时此刻这个时间点,可以同时执行的线程数为4。计算机A为双核四线程:内核为两个,每个内核可以模拟出两个逻辑处理器。
例如,单核单线程可以指在同一时刻运行一个线程,单核双线程可以指在同一时刻运行2个线程,双核双线程可以指在同一时刻运行2个线程,双核多线程可以指在同一时刻运行多个线程。一个CPU线程只能在一个CPU上运行,一个CPU线程在同一时刻只能执行单一Java程序。Java多线程并不是由于CPU线程数为多个才称为多线程,当Java线程数大于CPU线程数,操作系统使用时间片机制,采用线程调度算法,频繁的进行线程切换。多线程是程序设计的逻辑概念,它是进程中并发运行的一段代码,通过多线程实现线程之间的切换。
需要说明的是,同步是指发出一个功能调用时,在没有得到结果之前,该调用就不返回或继续执行后续操作。异步与同步相对,当一个异步过程调用发出后,调用者在没有得到结果之前,就可以继续执行后续操作。当这个调用完成后,一般通过状态、通知和回调来通知调用者。对于异步调用,调用的返回并不受调用者控制。根据定义,Java中所有方法都是同步调用,应为必须要等到结果后才会继续执行。在说同步、异步的时候,一般而言是特指那些需要其他端协作或者需要一定时间完成的任务。简单来说,同步就是必须一件一件事做,等前一件做完了才能做下一件事。可以通过以下例子简单说明下两者的区别。
同步:火车站多个窗口卖火车票,假设A窗口当卖第288张时,在这个短暂的过程中,其他窗口都不能卖这张票,也不能继续往下卖,必须这张票处理完其他窗口才能继续卖票。也就是说,当程序里出现关键字就将任务锁起来,当某个线程进来时,不能让其他线程继续进来,这就是同步。
异步:当下载某个视频时,大多数人都不会一直等着这个视频下载完,而是在下载的过程看看手机里的其他东西,比如用qq或者是微信聊聊天,这种的就是异步,你执行你的,我执行我的,互不干扰。比如上面卖火车票,如果多个窗口之间互不影响,我行我素,A窗口卖到第288张了,B窗口不管A窗口,自己也卖第288张票,那显然会出错了。
因此,当Java程序启动线程异步时,程序会不停的创建新线程,会造成资源的浪费,一般会使用线程池来管理线程的数量,因此可简称异步线程池。
对于步骤S110,需要说明的是,线程是处理器调度的基本单位。我们会为每一个请求都独立创建一个线程,而操作系统创建线程、切换线程状态、结束线程都要使用CPU进行调度,使用线程池能够更好对线程进行管理、复用等。
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程,每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值,超过最大值的线程可以排队,但要等到其他线程完成后才启动。
线程过多会带来调度开销,进而影响缓存局部性和整体性能,而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务,这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。例如,线程数可以取CPU数量+2比较合适,线程数过多会导致额外的线程切换开销。任务调度以执行线程的常见方法是使用同步队列,称作任务队列,线程池中的线程等待队列中的任务,并把执行完的任务放入完成队列中。
也就是说,所述线程池可以包括多个线程,每个线程可以包括线程IO时间和线程CPU时间。
其中,得到所述线程池大小的具体方式不受限制,可以根据实际应用需求进行设置。
例如,在一种可以替代的示例中,可以根据利特尔法则(Little’s law)得到第一公式,并根据所述多个线程的线程IO时间、线程CPU时间、对应的CPU数目和所述第一公式,计算得到所述线程池大小。
其中,所述第一公式的具体内容不受限制,可以根据实际应用需求进行设置。
例如,在一种可以替代的示例中,所述第一公式可以包括:
线程池大小=((线程IO time+线程CPU time)/线程CPU time)*CPU数目。
需要说明的是,所述多个线程的线程IO时间和线程CPU时间的具体类型不受限制,可以根据实际应用需求进行设置。
例如,在一种可以替代的示例中,所述多个线程的线程IO时间和线程CPU时间可以是多个线程的线程IO时间平均值和线程CPU时间平均值,也就是说,步骤S110可以包括以下子步骤:
根据多个线程的线程IO时间平均值、线程CPU时间平均值和对应的CPU数目,计算得到包括所述多个线程的线程池大小。
也就是说,可以先对所述多个线程的线程IO时间和线程CPU时间进行计算,得到所述多个线程的线程IO时间平均值、线程CPU时间平均值,再根据所述多个线程的线程IO时间平均值、线程CPU时间平均值和对应的CPU数目,计算得到包括所述多个线程的线程池大小。
又例如,在另一种可以替代的示例中,所述多个线程可以包括第一线程,所述多个线程的线程IO时间和线程CPU时间可以是所述第一线程的线程IO时间和线程CPU时间,也就是说,步骤S110可以包括以下子步骤:
根据所述第一线程的线程IO时间、线程CPU时间和多个线程对应的CPU数目,计算得到包括所述多个线程的线程池大小。
也就是说,可以通过对所述多个线程中的某一个线程进行计算,得到包括所述多个线程的线程池大小。
又例如,在另一种可以替代的示例中,所述多个线程的线程IO时间和线程CPU时间可以是所述多个线程的线程IO时间总值和线程CPU时间总值,也就是说,步骤S110可以包括以下子步骤:
根据多个线程的线程IO时间总值、线程CPU时间总值和对应的CPU数目,计算得到包括所述多个线程的线程池大小。
也就是说,可以先对所述多个线程的线程IO时间和线程CPU时间进行计算,得到所述多个线程的线程IO时间总值、线程CPU时间总值,再根据所述多个线程的线程IO时间总值、线程CPU时间总值和对应的CPU数目,计算得到包括所述多个线程的线程池大小。
对于步骤S120,需要说明的是,所述根据所述线程池大小对所述多个线程进行异步处理的具体方式不受限制,可以根据实际应用需求进行设置。
例如,在一种可以替代的示例中,步骤S120可以包括以下子步骤:
通过预设的Future模型和CountDownLatch组件根据所述线程池大小对所述多个线程进行异步处理。
也就是说,可以设置多线程执行service工具类,基于Future模型和CountDownLatch来实现多线程异步查询,同步等待。
进一步地,所述根据所述线程池大小对所述多个线程进行异步处理的具体步骤不受限制,可以根据实际应用需求进行设置。
例如,在一种可以替代的示例中,结合图3,步骤S120可以包括步骤S121和步骤S122。
步骤S121,根据所述线程池大小计算得到进行线程处理的数量阈值。
步骤S122,根据所述数量阈值对所述多个线程分别进行异步处理。
对于步骤S121,需要说明的是,由于所述线程池大小的不同,能够进行多线程处理的数量也有不同数量阈值。例如,在所述线程池偏大时,进行多线程处理的数量阈值偏高,能够同时处理的线程数量偏多;在所述线程池偏小时,进行多线程处理的数量阈值偏低,能够同时处理的线程数量偏少。
对于步骤S122,需要说明的是,所述根据所述数量阈值对所述多个线程分别进行异步处理的具体方式不受限制,可以根据实际应用需求进行设置。
例如,在一种可以替代的示例中,步骤S122可以包括以下子步骤:
首先,判断所述多个线程的数量是否大于所述数量阈值。其次,若所述多个线程的数量大于所述数量阈值,则根据所述数量阈值对所述多个线程进行分组处理,得到多个线程组,并分别对每个线程组进行异步处理。然后,若所述多个线程的数量不大于所述数量阈值,则直接对所述多个线程进行异步处理。
也就是说,通过步骤S121计算得到进行线程处理的数量阈值之后,还需要判断所述多个线程的数量与所述数量阈值的关系,以对所述多个线程进行对应地处理。
举例说明,在每日定时生成100万用户下所有site站点(1000万左右)的js采集文件应用场景下,现有技术中包括步骤1、步骤2、步骤3、步骤4和步骤5,并且步骤1执行完毕后执行步骤2,步骤2执行完毕后执行步骤3,步骤3执行完毕后执行步骤4,步骤4执行完毕后执行步骤5。
其中,步骤1可以包括每次查询3000用户的ID信息,步骤2可以包括查询用户对应的32项权限,步骤3可以包括查询用户当前套餐周期内权限项用量情况,步骤4可以包括查询用户下所有站点,步骤5可以包括查询用户对应的所有站点的配置(包含广告、事件、智能事件、AB实验、徽章、黑名单等配置共6个查询)。所有执行步骤同步等待,假设每个子查询耗时X ms(毫秒),总耗时为10X ms(最后一大步骤包含6个子查询)。
在本申请实施例提供的技术方案中,可以先执行步骤1得到用户的ID信息,再对步骤2、步骤3、步骤4和步骤5进行并发查询,在同步等待最后一个查询完成后,可以得到所有查询结果。步骤2、步骤3、步骤4和步骤5包括的9个子查询耗时压缩为X ms(毫秒),整个流程耗时压缩为2X ms,效率提升5倍。
结合图4,本申请实施例还提供了一种数据处理装置100,可以应用于上述的电子设备10。其中,该数据处理装置100可以包括线程池计算模块110和线程处理模块120。
所述线程池计算模块110,用于根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小。在本实施例中,所述线程池计算模块110可以用于执行图2所示的步骤S110,关于所述线程池计算模块110的相关内容可以参照前文对步骤S110的具体描述。
所述线程处理模块120,用于根据所述线程池大小对所述多个线程进行异步处理。在本实施例中,所述线程处理模块120可以用于执行图2所示的步骤S120,关于所述线程处理模块120的相关内容可以参照前文对步骤S120的具体描述。
在本申请实施例中,对应于上述的数据处理方法,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序运行时执行上述数据处理方法的各个步骤。
其中,前述计算机程序运行时执行的各步骤,在此不再一一赘述,可参考前文对所述数据处理方法的解释说明。
综上所述,本申请实施例提供的数据处理方法和装置、电子设备及计算机可读存储介质,根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小,以对所述多个线程进行异步处理,从而避免了现有技术中进行同步查询资源闲置严重,所导致的数据处理的效率低的问题。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小;
根据所述线程池大小对所述多个线程进行异步处理。
2.如权利要求1所述的数据处理方法,其特征在于,所述根据所述线程池大小对所述多个线程进行异步处理的步骤,包括:
根据所述线程池大小计算得到进行线程处理的数量阈值;
根据所述数量阈值对所述多个线程分别进行异步处理。
3.如权利要求2所述的数据处理方法,其特征在于,所述根据所述数量阈值对所述多个线程分别进行异步处理的步骤,包括:
判断所述多个线程的数量是否大于所述数量阈值;
若所述多个线程的数量大于所述数量阈值,则根据所述数量阈值对所述多个线程进行分组处理,得到多个线程组,并分别对每个线程组进行异步处理;
若所述多个线程的数量不大于所述数量阈值,则直接对所述多个线程进行异步处理。
4.如权利要求1所述的数据处理方法,其特征在于,所述根据所述线程池大小对所述多个线程进行异步处理的步骤,包括:
通过预设的Future模型和CountDownLatch组件根据所述线程池大小对所述多个线程进行异步处理。
5.如权利要求1所述的数据处理方法,其特征在于,所述根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小的步骤,包括:
根据多个线程的线程IO时间平均值、线程CPU时间平均值和对应的CPU数目,计算得到包括所述多个线程的线程池大小。
6.如权利要求1所述的数据处理方法,其特征在于,所述多个线程包括第一线程,所述根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小的步骤,包括:
根据所述第一线程的线程IO时间、线程CPU时间和多个线程对应的CPU数目,计算得到包括所述多个线程的线程池大小。
7.如权利要求1所述的数据处理方法,其特征在于,在计算得到包括所述多个线程的线程池大小之前,所述数据处理方法还包括:
获取多个线程的线程IO时间、线程CPU时间和对应的CPU数目。
8.一种数据处理装置,其特征在于,包括:
线程池计算模块,用于根据多个线程的线程IO时间、线程CPU时间和对应的CPU数目,计算得到包括所述多个线程的线程池大小;
线程处理模块,用于根据所述线程池大小对所述多个线程进行异步处理。
9.一种电子设备,其特征在于,包括存储器和处理器,所述处理器用于执行所述存储器中存储的可执行的计算机程序,以实现权利要求1-7任意一项所述的数据处理方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该程序被执行时实现权利要求1-7任意一项所述数据处理方法的步骤。
CN202010074658.2A 2020-01-22 2020-01-22 数据处理方法和装置、电子设备及计算机可读存储介质 Pending CN111274038A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010074658.2A CN111274038A (zh) 2020-01-22 2020-01-22 数据处理方法和装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010074658.2A CN111274038A (zh) 2020-01-22 2020-01-22 数据处理方法和装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN111274038A true CN111274038A (zh) 2020-06-12

Family

ID=71001982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010074658.2A Pending CN111274038A (zh) 2020-01-22 2020-01-22 数据处理方法和装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111274038A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329838A (zh) * 2017-05-23 2017-11-07 努比亚技术有限公司 一种业务交互方法、终端和计算机可读存储介质
CN107957903A (zh) * 2017-11-13 2018-04-24 中国平安财产保险股份有限公司 异步任务调度方法、服务器及存储介质
CN108255607A (zh) * 2018-01-08 2018-07-06 武汉斗鱼网络科技有限公司 任务处理方法、装置、电子终端及可读存储介质
CN108874550A (zh) * 2018-07-18 2018-11-23 郑州云海信息技术有限公司 一种调整线程池的方法、装置、存储介质和计算机设备
CN109710400A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 线程资源分组的方法及装置
CN110058940A (zh) * 2019-03-08 2019-07-26 苏宁易购集团股份有限公司 一种多线程环境下的数据处理方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107329838A (zh) * 2017-05-23 2017-11-07 努比亚技术有限公司 一种业务交互方法、终端和计算机可读存储介质
CN107957903A (zh) * 2017-11-13 2018-04-24 中国平安财产保险股份有限公司 异步任务调度方法、服务器及存储介质
CN108255607A (zh) * 2018-01-08 2018-07-06 武汉斗鱼网络科技有限公司 任务处理方法、装置、电子终端及可读存储介质
CN108874550A (zh) * 2018-07-18 2018-11-23 郑州云海信息技术有限公司 一种调整线程池的方法、装置、存储介质和计算机设备
CN109710400A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 线程资源分组的方法及装置
CN110058940A (zh) * 2019-03-08 2019-07-26 苏宁易购集团股份有限公司 一种多线程环境下的数据处理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MOB604756F44F2A: "如何合理设置线程池大小", 《HTTPS://BLOG.51CTO.COM/U_15127588/4512308?ARTICLEABTEST=0》 *

Similar Documents

Publication Publication Date Title
CN107291547B (zh) 一种任务调度处理方法、装置及系统
US7831980B2 (en) Scheduling threads in a multi-processor computer
US8612986B2 (en) Computer program product for scheduling ready threads in a multiprocessor computer based on an interrupt mask flag value associated with a thread and a current processor priority register value
CN111897637B (zh) 作业调度方法、装置、主机及存储介质
CN108595282A (zh) 一种高并发消息队列的实现方法
CN110825535A (zh) 一种作业调度的方法和系统
CN110795254A (zh) 一种基于php处理高并发io的方法
CN112506808B (zh) 测试任务执行方法、计算设备、计算系统和存储介质
CN112860387A (zh) 分布式任务调度方法、装置、计算机设备及存储介质
CN114968567A (zh) 用于分配计算节点的计算资源的方法、装置和介质
CN111475312B (zh) 基于实时操作系统的消息驱动方法和装置
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
CN114816709A (zh) 任务调度方法、装置、服务器及可读存储介质
CN112860401B (zh) 任务调度方法、装置、电子设备和存储介质
CN113687926A (zh) 一种服务器资产扫描的控制方法、装置及设备
CN112395062A (zh) 任务处理方法、装置、设备及计算机可读存储介质
CN111274038A (zh) 数据处理方法和装置、电子设备及计算机可读存储介质
CN109829005A (zh) 一种大数据处理方法及装置
CN115712572A (zh) 任务的测试方法、装置、存储介质及电子装置
CN115129438A (zh) 任务分布式调度的方法和装置
US8621471B2 (en) High accuracy timer in a multi-processor computing system without using dedicated hardware timer resources
EP3387529A1 (en) Method and apparatus for time-based scheduling of tasks
CN113296900A (zh) 一种任务切换方法及装置
CN114490780B (zh) 一种数据流的调度方法、装置、电子设备、介质及产品
CN112202766B (zh) 基于Redis的数据处理方法、装置以及服务端设备

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200612