CN103605498B - 单线程任务的多线程执行方法及系统 - Google Patents

单线程任务的多线程执行方法及系统 Download PDF

Info

Publication number
CN103605498B
CN103605498B CN201310655730.0A CN201310655730A CN103605498B CN 103605498 B CN103605498 B CN 103605498B CN 201310655730 A CN201310655730 A CN 201310655730A CN 103605498 B CN103605498 B CN 103605498B
Authority
CN
China
Prior art keywords
task
thread
multithreading
context
configuration
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
Application number
CN201310655730.0A
Other languages
English (en)
Other versions
CN103605498A (zh
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.)
Yonyou Network Technology Co Ltd
Original Assignee
Yonyou Network 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 Yonyou Network Technology Co Ltd filed Critical Yonyou Network Technology Co Ltd
Priority to CN201310655730.0A priority Critical patent/CN103605498B/zh
Publication of CN103605498A publication Critical patent/CN103605498A/zh
Application granted granted Critical
Publication of CN103605498B publication Critical patent/CN103605498B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种对任务进行快速处理的方法和采用这种方法的系统,更具体地涉及一种单线程任务的多线程执行方法及采用这种方法的系统。所述方法包括:接收单线程总任务并进行上下文配置;对所述单线程总任务进行任务自动划分;根据所述上下文配置来创建线程池;根据所述上下文配置中来配置线程的事务处理;对划分后的任务进行任务调度和多线程管理组合;获取的子任务、线程和事务组合后,执行线程处理过程。另外,本发明还提供了采用该方法的系统。这样,本发明提供了一种单线程任务的多线程执行方法及采用该方法的系统,其不仅对系统结构影响小、成本低且效率高,并且切换和调试方便。

Description

单线程任务的多线程执行方法及系统
技术领域
本发明涉及一种对任务进行快速处理的方法和采用这种方法的系统,更具体地涉及一种单线程任务的多线程执行方法,并且涉及采用这种方法的系统。
背景技术
在当前各种系统中,海量数据需要计算、网络传输、IO操作等导致传统线性执行任务有很大效率问题,而为了提高效率,在系统中应用多线程处理的情况越来越多。但是现有的多线程处理需要繁琐的步骤,并且不易调试,这导致了现有的多线程处理很难实现,而且如果将现有系统中的单线程任务改成多线程执行对系统的改动将会很大,需要修改现有系统的工作任务,这会影响到系统对任务的执行,给产品稳定带来很大风险,并且大大增加了工作量;另外并不是所有的任务改成多线程执行都能很大地提高效率,经过测试许多单线程任务改为多线程执行后性能提升不明显,需要取消多线程执行,而现有解决方式是要重新修改系统,调回到原来状态,这样会造成资源的二次浪费。总之现有的多线程使用技术的使用成本比较高,而且给产品带来比较大的风险。
因此需要一种能够解决上述现有技术中多线程处理对系统结构影响过大且容易给系统带来不可测风险、成本过高而效率过低、以及功能切换和调试困难等问题。
发明内容
基于上述现有技术的缺点,本发明的发明目的在于提供一种单线程任务的多线程执行方法,其不仅对系统结构影响小、成本低且效率高,并且切换和调试方便;另外发明还提供了一种采用上述方法的系统。
为了实现上述的发明目的,本发明采用如下的技术方案:
一种单线程任务的多线程执行方法,该方法包括:
(1)接收单线程总任务,并进行上下文配置,其中在所述上下文配置中对任务划分模式、事务处理方式和多线程执行过程中的线程池大小进行配置;
(2)对所述单线程总任务进行任务自动划分,其中在自动划分过程中根据所述上下文配置及所述单线程总任务中的任务总数进行任务自动划分,并且在任务自动划分中使每一个线程处理的任务均衡,即执行时间相同并且执行的步骤的数量相同;
(3)根据所述上下文配置中配置的线程池大小来创建线程池,其中在线程池中创建处理线程并且对新线程上下文环境进行初始化;
(4)根据所述上下文配置中配置的事务处理方式来配置线程的事务处理,其中根据上下文配置,该事务处理方式包括任务整体成功和任务部分成功在内的至少两种事务处理方式;
(5)对划分后的任务进行任务调度和多线程管理组合,其中能够可选择地启用多线程执行功能,并且根据步骤(2)中对所述单线程总任务的任务自动划分以获取划分后的子任务、根据步骤(3)中的线程池获取线程、同时根据步骤(4)中的事务处理方式获取事务,将获取的所述子任务、线程和事务进行组合管理;
(6)根据步骤(5)中获取的子任务、线程和事务组合后,执行线程处理过程。
其中,在步骤(2)中,根据上下文配置来确定任务划分模式,所述方法能够自动匹配两种任务划分方式:对象数组方式和数据库表方式。
进一步地,所述对象数组方式是均等地任务分配方式,根据需要转换为多线程执行的现有单线程任务的总任务数及线程个数均等地分割任务,这种方式适用于每个任务完成所需资源相同,即当任务总数为N时,根据资源配置等信息确定线程个数为M,则每个线程需要处理的任务为N/M。
更进一步地,所述数据库表方式用于不是所有任务完成所需资源相同的情况,在相同的维度下的所有任务所需数据量差距非常大,数据库表方式根据对任务支持数量进行自适应,即根据传入数据库表的需要转换为多线程执行的现有单线程任务、任务划分维度、每个任务处理数据最大量进行自适应,能够自动划分任务,可使每个划分后的任务数据量相同。
另外,在所述步骤(3)中,所述上下文配置中创建所述线程池时支持:主线程调用完成后即结束和等待子线程完全执行完成后结束两种模式。
其次,在所述步骤(4)中,所述事务处理方式据上下文配置进行事务处理,如果配置所述任务整体成功即所有线程共用一个事务,如果配置允许所述任务部分成功则每一个线程单独创建单独事务。
a)当所有线程共用一个事务时,如果有一个线程失败则整个事务重新执行,该模式适用于任务之间有关联关系的情况;
b)当每一个线程单独创建单独事务时,如果该线程执行成功则直接提交事务,该模式适用于任务与任务之间没有直接关系的情况。
再次,在步骤(5)中,其中启用多线程执行功能包括如下两种方式:
a)直接调用,在所述单线程总任务中以参数传输处理方式完成多线程执行方法的调用;
b)面向切面编程(AOP)方式,是多线程执行方式与所述单线程总任务耦合,完成对所述单线程总任务的单线程执行和多线程执行之间的切换。
另外,本发明还提供了一种采用上述任意一种单线程任务的多线程执行方法的系统,该系统包括:
单线程总任务接收及配置模块,其用于接收单线程总任务并进行上下文配置,在所述上下文配置中对任务划分模式、事务处理方式和多线程执行过程中的线程池大小进行配置;
任务自动划分模块,其对所述单线程总任务进行任务自动划分,其中在自动划分过程中根据所述上下文配置及所述单线程总任务中的任务总数进行任务自动划分,并且在任务自动划分过程中使每一个线程处理的任务均衡,即执行时间相同并且执行步骤差等于或小于预定阀值;
线程池创建模块,其根据所述上下文配置中配置的线程池大小创建线程池,其中在线程池中处理线程的创建、新线程上下文环境的初始化;
事务处理方式配置模块,其根据所述上下文配置中配置的事务处理方式,其中根据上下文配置,该事务处理方式包括任务整体成功和任务部分成功在内的至少两种事务处理方式;
任务调度模块,其对划分后的任务进行任务调度和多线程管理组合,其中能够可选择启用多线程执行功能,并且将获取的所述子任务、线程和事务进行组合管理;
执行模块,其在将获取的子任务、线程和事务组合后,执行处理过程。
进一步地,所述单线程总任务接收及配置模块、所述任务自动划分模块、所述线程池创建模块、所述事务处理方式配置模块、所述任务调度模块和所述执行模块顺次连接或者采用串联/并联的混合连接模式。
需要说明的是,在本发明中所使用的术语“相同”均是指本领域技术人员所认为的在不影响本发明方法实现功能和实现效果的前提下近似地相等或相同,或者是完全地相等或相同;本发明中的术语“面向切面编程(AOP)”指的是面向切面编程(AspectOrientedProgramming);另外,本发明中的术语“资源”不仅包括硬件资源同时包括软件资源。
通过采用上述的技术方案,本发明提供了一种单线程任务的多线程执行方法,其不仅对系统结构影响小、成本低且效率高,并且切换和调试方便;同时本发明还提供了一种采用上述方法的系统。
附图说明
图1中示出的是单线程总任务执行的示意流程图;
图2中示出的是单线程总任务被划分成多线程来执行的示意流程图;
图3中示出的是本发明的方法执行的时序调用流程图;
图4中示出的是本发明所采用的数据库表方式的原理图;
图5中示出的是任务整体成功的事务处理方式的流程图;
图6中示出的是任务部分成功的事务处理方式的流程图。
具体实施方式
本发明在于提供一种单线程任务的多线程执行方法,其不仅对系统结构影响小、成本低且效率高,并且切换和调试方便;同时本发明还提供了一种采用上述方法的系统。下面结合说明书附图并采用具体实施方式的形式对本发明进行详细地说明。
本发明描述一种能简单、快速、安全地将现有单线程总任务(如图1所示为该单线程总任务执行的流程图)自动透明的转换为按照多线程方式执行的方法,并保证转换前后的任务展现的行为保持一致。本发明的方法能够自动完成任务划分、分配、事务处理、线程池管理、多线程调度执行,可广泛的应用到为了提高效率需要转换到多线程执行的各种系统和产品中。在实际应用中本发明公开的方法支持已存在的单线程任务作为总任务,通过使用本方法提供的功能根据总任务,任务划分依据,线程池配置等定义多线程执行的上下文环境并执行。具体地,通过采用本发明的方法的系统接收总任务,自动根据配置的线程池中线程个数和任务划分依据完成任务划分、多线程执行。本发明还支持包括任务整体成功和任务部分成功在内的至少两种事务处理方式,提供包括直接调用和面向切面编程(AOP)至少两种调用方式,既能多线程地执行大大提高效率的同时很好地降低了与其它代码耦合的难度。
图2中示出的是单线程总任务被划分成多线程来执行的示意流程图。如图所示,该方法是由需要转换为多线程执行的现有单线程任务提供业务处理过程及总任务,由本发明的方法自动的进行任务划分并且多线程执行业务处理过程。本发明的方法接受总任务、进行上下文配置(线程池大小、事物处理方式、任务划分模式等)及业务实现过程即可实现多线程执行。多线程执行对用户是透明的,具体的多线程构造、多线程任务划分、事务处理、线程管理等全部在本发明的方法中自动完成。
本发明的方法包括以下几个具体步骤:
任务自动划分:该步骤的主要功能是根据上下文配置及任务总数进行任务划分,并且在自动划分任务中考虑了负载均衡,使每一个线程处理的任务均衡,即每个线程执行的时间相同,甚至与每个线程执行的步骤数量相同,能有效避免多线程执行时由于单个线程执行时间过长影响整体性能。
多线程管理:该组件是根据上下文配置中的线程池大小创建线程池,并且处理线程的创建、新线程上下文环境的初始化等。
事务处理:为了支持不同的应用场景,在本方法中支持两种不同的事务处理方式,即任务整体成功和任务部分成功两种,在本步骤中根据上下文配置进行事务处理,如果配置任务整体成功即所有线程共用一个事务,如果配置允许任务部分成功则每一个线程单独创建单独事务。
任务调度:在本步骤中将划分后的任务和多线程管理组合,对任务实现部分进行多线程调用。
执行线程:执行调度后的线程,完成任务。
另外,本发明的方法是可选择性的启用的,这将在下面的说明中详细描述。
下面结合图3更详细的说明本发明的方法的步骤。其中图3中示出的是本发明的方法执行的时序调用流程图。本发明的方法只要配置完毕既能实现多线程执行,所有的处理比如任务划分、事物处理、任务调度等全部自动完成管理。在上下文配置中配置相应的任务划分模式、事物管理模式、主线程等待方式、线程池大小及任务划分依据等信息。在本发明的方法的调用方式上可采用直接调用,也可以采用通过面向切面编程(AOP)调用的方式,更加提高灵活性,降低与原有系统耦合难度;同时实现了本发明的方法是可选择性的启用
任务自动划分:
任务自动划分是本发明的方法的重要组成部分,在使用多线程执行中,任务划分在工作量上占比很大。本发明的方法不仅能自动划分任务,而且在任务划分灵活性方面具有很强的适应性。相似于“木桶效应”原理,如果任务划分合理,能大大提高整个程序的效率,所以灵活的任务自动划分是很有必要的。为此本发明的方法中提供两种模式:对象数组方式和数据库表方式,根据上下文配置选择任务划分模式,本发明的方法能自动匹配这两种任务划分方式。
(1)对象数组方式
对象数组方式是均等地任务分配,其根据需要转换为多线程执行的现有单线程任务的总任务数及线程个数均等地分割任务,这种方式适用于每个任务完成代价大体相似,比如有任务总数N,根据资源配置等信息确定线程个数为M,则每个线程需要处理的任务为N/M,改为多线程后由原来单个线程处理任务N,改成单个线程处理任务N/M,理论上效率会提高M倍,但是资源对多线程调度等原因效率不会提高M倍,但是也会很大提高,尤其是在网络传输、I/O等操作中这种效率的提高尤为明显。
(2)数据库表方式
在实际应用中,不是所有任务完成代价全部相同的,在相同的维度下的需要处理的数据量差距非常大。如果在相同维度下均等地分割任务,会导致有些线程压力很大,有些线程很轻松,会对整体效率有很大影响。
基于此,本发明的方法的任务划分支持数量自适配,即需要转换为多线程执行的现有单线程任务传入数据库表、任务划分维度、每个任务处理数据最大量,能够自动划分任务,可使每个划分后的任务数据量大致相似,原理图则如图4所示。
经过图4的处理后,任务池中的任务都很均衡,其中需要注意的是设置最大数据量,要根据具体数据分布合理设置。
多线程管理
根据上下文配置线程池大小,在多线程管理组件中,处理线程创建、子线程的上下文处理、线程的运行等。而为了支持主线程调用完成后即结束和等待子线程完全执行完成后结束两种模式,在上下文配置中增加了主线程等待方式,以支持不同的应用场景。比如可以让主线程等待子线程执行完毕,另外新的子线程对任务处理结果进行刷新,并给出任务完成状态和进度条。
事物处理
数据库事务是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会更新面向数据的硬件。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性,事务是保证数据正确的重要保障。
为了支持任务部分成功和任务整体成功,在上下文配置中增加事务处理模式的配置,本发明的方法可以按照配置自动地选择任务部分成功或者任务整体成功,下面顺次详细介绍两种事务处理方式:
a)在任务整体成功模式中,所有线程都在一个事务中,如果有一个线程失败则整个事务重启,该模式适用于任务之间有关联关系,是一个整体,要保证完整性应用,处理流程图如图5所示;
b)在任务部分成功模式中,每个线程都有自己事务,如果该线程执行成功则直接提交事务,该模式适用于任务与任务之间没有直接关系,不相互依赖的应用,处理流程图如图6所示。
上面两种事务处理模式,能很好的保证了采用多线程执行的应用对数据正确性的控制,也扩展了本方法适用的应用场景。
任务调度
根据线程管理和任务划分的结果,对任务实现过程进行多线程调用,是最终任务执行的开始,不具体详述线程的处理过程,对原有的任务处理过程进行多线程执行,在多线程与自动划分好的任务结合执行后,就能完成原来单线程执行程序的多线程执行得目的。
为了解决耦合、快速转换是否多线程执行,本方法的调用方式有两种:
a)在程序中直接调用,将任务实现及相关参数通过参数方式传输,由本发明的方法自动完成多线程调用。
b)通过面向切面编程(AOP)调用,这种方式使本发明的方法与原有代码轻松耦合,一次设置完毕后可以不做修改即能在是否使用多线程调用之间切换。
本发明所描述调用多线程程序必须的几个工作进行了封装,将使用人员从繁琐的多线程编程中解脱出来,在应用时只需要关注任务处理本身,而不需要关注多线程,大大降低了多线程使用难度,为了增加灵活性,本发明提供可配置的多场景实现,能很好的支持现有多线程应用场景。其中:
(1)自动任务划分:能完成自动的任务划分,使用者不用关注任务划分方式,在本发明的方法中提供了两种任务划分方式,数组、数据库表方式,大大提供了任务划分的合理性和灵活性。
(2)事务管理:提供两种事务管理方式部分提交、整体提交,如果划分任务之间没有直接关系,可以部分事务单独提交,因为数据库的回滚段空间限制等,这种方式很大的改善了效率。
(3)线程管理、调度:多线程上下文管理、调用执行等对用户完全透明,不需要关注。
本发明的方法可以应用在新产品开发的多线程使用中,也可以应用在现有产品的多线程改造中,都能具有高效、灵活的应用表现。
因此,在硬件配置大幅提高,数据量迅速庞大,由于多线程应用成本高等原因导致多线程的应用没有很普遍的背景下,本发明提出的方法很好的解决了上述问题,需要转换为多线程执行的现有单线程任务只需要关注自己业务处理部分,其它的任务划分、多线程任务调度、管理、多线程执行、事务处理等全部封装,大大降低了多线程使用时任务划分、事物处理、线程管理调度等方面的难度。本发明的方法的快速简单配置方式也比原来使用多线程需要修改系统结构的方式在成本、风险方面有了很大的有益改进。
另外,本发明还提供了采用上述方法的系统,一种采用上述单线程任务的多线程执行方法的系统,该系统包括:
单线程总任务接收及配置模块,其用于接收单线程总任务并进行上下文配置,在所述上下文配置中对任务划分模式、事务处理方式和多线程执行过程中的线程池大小进行配置;
任务自动划分模块,其对所述单线程总任务进行任务自动划分,其中在自动划分过程中根据所述上下文配置及所述单线程总任务中的任务总数进行任务自动划分,并且在任务自动划分过程中使每一个线程处理的任务均衡,即执行时间相同并且执行步骤差等于或小于预定阀值;
线程池创建模块,其根据所述上下文配置中配置的线程池大小创建线程池,其中在线程池中处理线程的创建、新线程上下文环境的初始化;
事务处理方式配置模块,其根据所述上下文配置中配置的事务处理方式,其中根据上下文配置,该事务处理方式包括任务整体成功和任务部分成功在内的至少两种事务处理方式;
任务调度模块,其对划分后的任务进行任务调度和多线程管理组合,其中能够可选择启用多线程执行功能,并且将获取的所述子任务、线程和事务进行组合管理;
执行模块,其在将获取的子任务、线程和事务组合后,执行处理过程。
进一步地,所述单线程总任务接收及配置模块、所述任务自动划分模块、所述线程池创建模块、所述事务处理方式配置模块、所述任务调度模块和所述执行模块顺次连接或者采用串联/并联的混合连接模式。
本系统支持已存在的单线程任务作为总任务,通过使用本系统提供的功能定义总任务、任务划分依据、线程池配置等定义多线程执行的上下文环境,触发本系统执行,本系统接收总任务,自动根据配置的线程池中线程个数和任务划分依据完成任务划分、多线程执行,该系统很好的解决了以下几个问题:
(1)降低了多线程使用难度,不需要关心多线程处理,只关注任务本身;
(2)现有产品多线程改造风险大大降低,提高了效率;
如果采用面向切面编程(AOP)调用方式可快速实现插拔,即能方便的在单线程、多线程之间切换且不需要修改系统结构。
通过采用上述的具体技术方案,本发明提供了一种单线程任务的多线程执行方法,其不仅对系统结构影响小、成本低且效率高,并且切换和调试方便;同时本发明还提供了一种采用上述方法的系统。
本发明的保护范围并不限定在上述具体实施方式中所说明的具体实施例,而是只要满足本发明的权利要求书的技术特征的组合就落入了本发明的保护范围之中。

Claims (7)

1.一种单线程任务的多线程执行方法,所述方法包括:
(1)接收单线程总任务,并进行上下文配置,其中在所述上下文配置中对任务划分模式、事务处理方式和多线程执行过程中的线程池大小进行配置;
(2)对所述单线程总任务进行任务自动划分,其中在任务自动划分过程中根据所述上下文配置及所述单线程总任务中的任务总数进行任务自动划分,并且在任务自动划分中使每一个线程处理的任务均衡,即执行时间相同并且执行步骤的数量相同;
(3)根据所述上下文配置中配置的线程池大小来创建线程池,其中在线程池中创建处理线程并且对新线程上下文环境进行初始化;
(4)根据所述上下文配置中配置的事务处理方式来配置线程的事务处理,其中根据上下文配置,该事务处理方式包括任务整体成功和任务部分成功在内的至少两种事务处理方式;
(5)对划分后的任务进行任务调度和多线程管理组合,其中能够可选择地启用多线程执行功能,并且根据步骤(2)中对所述单线程总任务的任务自动划分以获取划分后的子任务、根据步骤(3)中的线程池获取线程、同时根据步骤(4)中的事务处理方式获取事务,将获取的所述子任务、线程和事务进行组合管理;
(6)根据步骤(5)中获取的子任务、线程和事务组合后,执行线程处理过程;
其特征在于,在步骤(2)中,根据上下文配置来确定任务划分模式,所述方法能够自动匹配两种任务划分方式:对象数组方式和数据库表方式;
所述对象数组方式是均等地任务分配方式,根据需要转换为多线程执行的现有单线程任务的总任务数及线程个数均等地分割任务,这种方式适用于每个任务完成所需资源相同,即当任务总数为N时,根据资源确定线程个数为M,则每个线程需要处理的任务为N/M;
所述数据库表方式用于不是所有任务完成所需资源相同的情况,在相同的维度下的所有任务所需数据量差距非常大,数据库表方式根据任务支持数量进行自适应,即根据传入数据库表需要转换为多线程执行的现有单线程任务、任务划分维度、每个任务处理数据最大量进行自适应,自动划分任务,可使每个划分后的任务数据量相同。
2.根据权利要求1所述的方法,其特征在于,在所述步骤(3)中,所述上下文配置中的配置创建所述线程池时支持:主线程调用完成后即结束和等待子线程完全执行完成后结束两种模式。
3.根据权利要求1所述的方法,其特征在于,在所述步骤(4)中,所述事务处理方式据上下文配置进行事务处理,如果配置所述任务整体成功即所有线程共用一个事务,如果配置允许所述任务部分成功则每一个线程单独创建单独事务。
4.根据权利要求3所述的方法,其特征在于,
a)当所有线程共用一个事务时,如果有一个线程失败则整个事务重新执行,该模式适用于任务之间有关联关系的情况;
b)当每一个线程单独创建单独事务时,如果该线程执行成功则直接提交事务,该模式适用于任务与任务之间没有直接关系的情况。
5.根据权利要求1所述的方法,其特征在于,在步骤(5)中,启用多线程执行功能包括如下两种方式:
a)直接调用,在所述单线程总任务中以参数传输处理方式完成多线程执行方法的调用;
b)面向切面编程(AOP)方式,是多线程执行方式与所述单线程总任务耦合,以完成对所述单线程总任务的单线程执行和多线程执行之间的切换。
6.一种采用如权利要求1-5中任意一项所述的单线程任务的多线程执行方法的系统,其特征在于,所述系统包括:
单线程总任务接收及配置模块,其用于接收单线程总任务并进行上下文配置,在所述上下文配置中对任务划分模式、事务处理方式和多线程执行过程中的线程池大小进行配置;
任务自动划分模块,其对所述单线程总任务进行任务自动划分,其中在自动划分过程中根据所述上下文配置及所述单线程总任务中的任务总数进行任务自动划分,并且在任务自动划分过程中使每一个线程处理的任务均衡,即执行时间相同并且执行步骤的数量相同;
线程池创建模块,其根据所述上下文配置中配置的线程池大小创建线程池,其中在线程池中处理线程的创建、新线程上下文环境的初始化;
事务处理方式配置模块,其根据所述上下文配置中配置的事务处理方式,其中根据上下文配置,该事务处理方式包括任务整体成功和任务部分成功在内的至少两种事务处理方式;
任务调度模块,其对划分后的任务进行任务调度和多线程管理组合,其中能够可选择启用多线程执行功能,并且将获取的所述子任务、线程和事务进行组合管理;
执行模块,其在将获取的子任务、线程和事务组合后,执行处理过程。
7.根据权利要求6所述的系统,其特征在于,所述单线程总任务接收及配置模块、所述任务自动划分模块、所述线程池创建模块、所述事务处理方式配置模块、所述任务调度模块和所述执行模块顺次连接或者采用串联/并联的混合连接模式。
CN201310655730.0A 2013-12-05 2013-12-05 单线程任务的多线程执行方法及系统 Active CN103605498B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310655730.0A CN103605498B (zh) 2013-12-05 2013-12-05 单线程任务的多线程执行方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310655730.0A CN103605498B (zh) 2013-12-05 2013-12-05 单线程任务的多线程执行方法及系统

Publications (2)

Publication Number Publication Date
CN103605498A CN103605498A (zh) 2014-02-26
CN103605498B true CN103605498B (zh) 2016-07-06

Family

ID=50123729

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310655730.0A Active CN103605498B (zh) 2013-12-05 2013-12-05 单线程任务的多线程执行方法及系统

Country Status (1)

Country Link
CN (1) CN103605498B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104199730B (zh) * 2014-08-29 2018-04-13 浪潮集团有限公司 一种基于同步i/o复用机制的单线程多任务处理方法
CN104615413A (zh) * 2015-02-13 2015-05-13 赛诺威盛科技(北京)有限公司 一种流水线任务自适应并行方法
CN106201853A (zh) * 2015-04-30 2016-12-07 阿里巴巴集团控股有限公司 测试方法及装置
CN104881320B (zh) * 2015-05-22 2018-11-27 北京京东尚科信息技术有限公司 一种可伸缩的生成文本的方法
CN106980533B (zh) * 2016-01-18 2020-04-28 杭州海康威视数字技术股份有限公司 基于异构处理器的任务调度方法、装置及电子设备
CN107341050B (zh) * 2016-04-28 2022-12-27 北京京东尚科信息技术有限公司 基于动态线程池的服务处理方法和装置
CN105975346B (zh) * 2016-05-25 2019-06-18 大唐网络有限公司 调度线程资源的方法、装置及系统
CN106528829A (zh) * 2016-11-14 2017-03-22 天津南大通用数据技术股份有限公司 一种海量数据的更新方法及装置
CN107368359A (zh) * 2017-05-31 2017-11-21 杭州大搜车汽车服务有限公司 一种异步任务执行方法及其存储介质、装置
CN109375991B (zh) * 2017-08-10 2021-07-27 中国石油化工股份有限公司 一种将单进程改造为多进程的方法及系统
CN109766131B (zh) * 2017-11-06 2022-04-01 上海宝信软件股份有限公司 基于多线程技术实现软件智能化自动升级的系统及方法
CN108958896A (zh) * 2018-06-16 2018-12-07 温州职业技术学院 多线程并发处理系统及方法
CN110807062B (zh) * 2018-08-02 2021-06-22 中兴通讯股份有限公司 一种数据同步的方法、装置和数据库主机
CN109710390B (zh) * 2018-12-19 2020-08-04 沈阳天眼智云信息科技有限公司 单线程处理器的多任务处理方法及处理系统
CN109933426B (zh) * 2019-02-19 2021-06-25 北京三快在线科技有限公司 服务调用的处理方法、装置、电子设备及可读存储介质
CN116109110B (zh) * 2023-04-11 2023-06-23 华能信息技术有限公司 一种业务中台的任务调度方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101135981A (zh) * 2007-08-29 2008-03-05 中兴通讯股份有限公司 一种实现批量报表生成的方法及装置
CN102541653A (zh) * 2010-12-24 2012-07-04 新奥特(北京)视频技术有限公司 一种多任务线程池调度方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6912610B2 (en) * 2003-03-28 2005-06-28 Emulex Design & Manufacturing Corporation Hardware assisted firmware task scheduling and management
JP4756675B2 (ja) * 2004-07-08 2011-08-24 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ資源のキャパシティを予測するためのシステム、方法およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101135981A (zh) * 2007-08-29 2008-03-05 中兴通讯股份有限公司 一种实现批量报表生成的方法及装置
CN102541653A (zh) * 2010-12-24 2012-07-04 新奥特(北京)视频技术有限公司 一种多任务线程池调度方法和系统

Also Published As

Publication number Publication date
CN103605498A (zh) 2014-02-26

Similar Documents

Publication Publication Date Title
CN103605498B (zh) 单线程任务的多线程执行方法及系统
KR102544522B1 (ko) 데이터 처리방법 및 관련제품
CN101707399B (zh) 电能信息采集方法及系统
EP2932370B1 (en) System and method for performing a transaction in a massively parallel processing database
CN104281906A (zh) 一种业务流程中的流程引擎实现方法及其流程引擎系统
CN103037019A (zh) 一种基于云计算的分布式数据采集系统及方法
CN101196926A (zh) 一种数据库访问平台及其访问方法
US9086911B2 (en) Multiprocessing transaction recovery manager
CN107203560B (zh) 数据库、多数据库操作事务一致性保证方法及系统
CN109740765B (zh) 一种基于亚马逊网络服务器的机器学习系统搭建方法
CN111160873A (zh) 基于分布式架构的跑批处理装置及方法
CN104750606A (zh) 一种基于反射的自动化测试方法
CN105893320A (zh) 一种面向多核处理器的远程任务函数调用方法
CN104750475A (zh) 一种卫星在轨重构框架系统和方法
CN110427427B (zh) 一种通过引脚桥接实现全局事务分布式处理方法
CN102945264A (zh) 智能启用分布式事务的方法
CN109522128A (zh) 分段式多线程任务执行方法及装置
CN109783083A (zh) Web应用开发方法及其系统
CN108073389B (zh) 一种基于脚本语言的引擎系统
CN107315686A (zh) 一种自动化测试的运行方法
CN102214094A (zh) 经由异步编程模型执行操作
CN112559032B (zh) 基于循环段的众核程序重构方法
CN114036182A (zh) 一种数据查询方法、计算机设备和存储介质
CN109375991B (zh) 一种将单进程改造为多进程的方法及系统
CN112395102A (zh) 一种分布式数据库中间件解决方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park

Applicant after: Yonyou Network Technology Co., Ltd.

Address before: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park

Applicant before: UFIDA Software Co., Ltd.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant