CN105975346B - 调度线程资源的方法、装置及系统 - Google Patents
调度线程资源的方法、装置及系统 Download PDFInfo
- Publication number
- CN105975346B CN105975346B CN201610353933.8A CN201610353933A CN105975346B CN 105975346 B CN105975346 B CN 105975346B CN 201610353933 A CN201610353933 A CN 201610353933A CN 105975346 B CN105975346 B CN 105975346B
- Authority
- CN
- China
- Prior art keywords
- module
- thread
- calculating
- scheduling
- resources
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004364 calculation method Methods 0.000 claims abstract description 29
- 238000004422 calculation algorithm Methods 0.000 claims description 14
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 5
- 239000010453 quartz Substances 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000007599 discharging Methods 0.000 claims description 2
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 16
- 238000013468 resource allocation Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 8
- 238000004064 recycling Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
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/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/5022—Mechanisms to release resources
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
本发明公开了一种调度线程资源的方法、装置及系统。其中,该方法包括:接收计算逻辑模块发送的对应计算任务的调度请求;依据调度请求创建对应的线程资源;将线程资源返回计算逻辑模块。本发明解决了由于相关技术中多线程计算是与计算方法绑定的,导致若多个任务同时执行时,系统资源分配不均衡以及资源未释放导致的内存泄露的技术问题。
Description
技术领域
本发明涉及计算机应用技术领域,具体而言,涉及一种调度线程资源的方法、装置及系统。
背景技术
在Java企业级应用系统环境中,计算与分析是比较基础的业务,在计算的过程中,为了提高计算的效率,经常会遇到需要使用多线程计算的情况。为了软件设计架构的统一和完整,提高多线程计算的效率,一般需要系统在整体架构设计的过程中就设计与预留系统多线程计算的接口。这样可以提高开发效率,保证计算的稳定性。
但是相关技术中由于现有的多线程计算是与计算方法绑定的,即当需要多线程计算时,创建线程池,开启多线程计算,每一个计算线程对应一个具体的计算业务,监听并释放资源,从而导致若多个任务同时执行时,系统资源分配不均衡以及资源未释放导致的内存泄露的问题。
针对上述由于相关技术中多线程计算是与计算方法绑定的,导致若多个任务同时执行时,系统资源分配不均衡以及资源未释放导致的内存泄露的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种调度线程资源的方法、装置及系统,以至少解决由于相关技术中多线程计算是与计算方法绑定的,导致若多个任务同时执行时,系统资源分配不均衡以及资源未释放导致的内存泄露的技术问题。
根据本发明实施例的一个方面,提供了一种调度线程资源的方法,包括:接收计算逻辑模块发送的对应计算任务的调度请求;依据调度请求创建对应的线程资源;将线程资源返回计算逻辑模块。
根据本发明实施例的一个方面,提供了另一种调度线程资源的方法,包括:依据预先得到的调度接口的判断结果,生成计算任务的调度请求;向线程资源模块发送计算任务的调度请求;接收线程资源模块依据调度请求分配的线程资源。
根据本发明实施例的另一方面,还提供了一种调度线程资源的装置,包括:接收模块,用于接收计算逻辑模块发送的对应计算任务的调度请求;资源创建模块,用于依据调度请求创建对应的线程资源;调度模块,用于将线程资源返回计算逻辑模块。
根据本发明实施例的另一方面,还提供了另一种调度线程资源的装置,包括:请求生成模块,用于依据预先得到的调度接口的判断结果,生成计算任务的调度请求;发送模块,用于向线程资源模块发送计算任务的调度请求;接收模块,用于接收线程资源模块依据调度请求分配的线程资源。
根据本发明实施例的又一方面,还提供了一种调度线程资源的系统,包括:线程资源模块和计算逻辑模块,计算逻辑模块和线程资源模块数据连接,其中,线程资源模块为上述一种调度线程资源的装置;计算逻辑模块为上述另一种调度线程资源的装置。
在本发明实施例中,通过接收计算逻辑模块发送的对应计算任务的调度请求;依据调度请求创建对应的线程资源;将线程资源返回计算逻辑模块,达到了合理分配系统资源的目的,从而实现了系统资源均匀分配以及内存资源的分配和回收的技术效果,进而解决了由于相关技术中多线程计算是与计算方法绑定的,导致若多个任务同时执行时,系统资源分配不均衡以及资源未释放导致的内存泄露的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的调度线程资源的方法的流程示意图;
图2是根据本发明实施例的一种调度线程资源的方法的流程示意图;
图3是根据本发明另一实施例的调度线程资源的方法的流程示意图;
图4是根据本发明另一实施例的一种调度线程资源的方法的流程示意图;
图5是根据本发明实施例的调度线程资源的装置的结构示意图;
图6是根据本发明实施例的一种调度线程资源的装置的结构示意图;
图7是根据本发明实施例的一种调度线程资源的装置的结构示意图;
图8是根据本发明实施例的另一种调度线程资源的装置的结构示意图;
图9是根据本发明实施例的又一种调度线程资源的装置的结构示意图;
图10是根据本发明另一实施例的调度线程资源的装置的结构示意图
图11是根据本发明另一实施例的一种调度线程资源的装置的结构示意图;
图12是根据本发明另一实施例的另一种调度线程资源的装置的结构示意图;
图13是根据本发明实施例的调度线程资源的系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
根据本发明实施例,提供了一种调度线程资源的方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的调度线程资源的方法的流程示意图,如图1所示,在线程资源模块侧,该方法包括如下步骤:
步骤S102,接收计算逻辑模块发送的对应计算任务的调度请求;
步骤S104,依据调度请求创建对应的线程资源;
步骤S106,将线程资源返回计算逻辑模块。
本申请实施例提供的调度线程资源的方法中可以适用于计算机内部线程资源调度环境,其中,本申请实施例中的线程资源模块可以为在实际计算机内部运行计算过程中的父类,该父类用于创建线程资源池,配置以及调度线程资源;而计算逻辑模块可以为计算机内部运行计算过程中的子类,该子类用于执行计算逻辑。
结合步骤S102至步骤S1O6,父类在接收子类发送的对应计算任务的调度请求,在接收到该调度请求后创建对应该调度请求的线程资源,并将创建好的该线程资源返回子类。
具体的,子类发送的对应计算任务的调度请求可以为java.util.concurrent.ExecutorService算法,父类在执行该java.util.concurrent.ExecutorService算法时,启动多线程调度方法,通过该子类的类名和实现该计算任务的计算方法名,父类创建多线程资源池,并根据计算任务配置对应的线程资源,在分配好对应的线程资源后,通过调用反射调用方法,获取子类的计算逻辑(即,步骤S106中的将线程资源返回计算逻辑模块)。
这里区别于相关技术中的多线程计算,相关技术中是将线程资源与计算方法绑定的,即当需要多线程计算时,创建线程池,开启多线程计算,每一个计算线程对应一个具体的计算业务,监听并释放资源。而本申请实施例提供的调度线程资源的方法区别在于线程资源与计算方法不绑定,多线程的整个资源创建,监听,释放流程独立于具体的计算方法。本申请实施例提供的调度线程资源的方法在应用时可以动态的反射到继承此父类的子类中。这样就可以由统一的处理流程来实现多元化的多线程业务计算。
通过上述步骤,通过接收计算逻辑模块发送的对应计算任务的调度请求;依据调度请求创建对应的线程资源;将线程资源返回计算逻辑模块,达到了合理分配系统资源的目的,从而实现了系统资源均匀分配以及内存资源的分配和回收的技术效果,进而解决了由于相关技术中多线程计算是与计算方法绑定的,导致若多个任务同时执行时,系统资源分配不均衡以及资源未释放导致的内存泄露的技术问题。
可选的,步骤S104中依据调度请求创建对应的线程资源包括:
Step1,解析调度请求,得到计算逻辑模块的模块名以及对应计算任务的计算方法名;
Step2,依据模块名和计算方法名创建线程池资源;
Step3,依据计算任务配置对应的线程资源。
具体的,结合步骤Step1至Step3,在依据调度请求创建对应的线程资源的过程中,在解析调度请求时,得到子类的类名与子类具体实现业务的方法名,父类的多线程计算方法可以创建线程池,并根据计算任务配置线程资源。
这里多线程的整体任务调用都在父类当中,由父类提供多线程的计算。在本申请实施例中使用java.util.concurrent.ExecutorService来提供多线程计算的线程池,由线程池来管理整个线程资源的创建,释放等问题。
可选的,Step3中依据计算任务配置对应的线程资源包括:
步骤A,将计算任务与对应的线程资源之间的对应关系进行注册;
步骤B,监听线程资源。
具体的,结合步骤A和步骤B,依据计算任务配置对应的线程资源的过程具体为:注册该计算任务与该计算任务对应的线程资源的对应关系,进而监听该线程资源。
可选的,步骤S106中将线程资源返回计算逻辑模块包括:
通过反射调用方法依据线程资源调用计算逻辑模块中的计算任务,反射调用方法,用于根据模块名和计算方法名获取计算任务的计算逻辑。
具体的,在获得了具体的线程资源以后,调用父类的反射调用方法,父类的反射调用方法可以具体的子类名和方法名,通过java的反射机制去获取具体的计算逻辑。
这里由于整体的业务计算逻辑位于子类中,而父类只是负责多线程调度,所以需要一套反射调度框架,来实现具体的业务逻辑。
可选的,在步骤S106将线程资源返回计算逻辑模块之后,本申请实施例提供的调度线程资源的方法还包括:
步骤S107,监听计算逻辑模块应用线程资源;
步骤S108,当监听结果为计算逻辑模块的计算任务完成时,释放线程资源和对应计算任务的内存资源。
具体的,结合步骤S107和步骤S108,在给子类的计算任务分配对应的线程资源后,父类监听子类应用该线程资源的过程,当子类的计算任务完成时,父类将释放该线程资源以及该计算任务对应的内存资源。
这里对整个线程池提供一个监听线程,来处理整个线程池的资源创建于释放,以及后续处理逻辑。当有多个子类同时请求计算资源时可以使用监听进程的join方法,使这个线程池阻塞并并入等待队列,当计算资源释放后顺序调度。
本申请实施例提供的调度线程资源的方法,当计算任务触发了以后,父类会执行子类的execute方法,子类执行继承自父类的多线程计算模型,计算模型在申请完线程池与资源了以后会反射调用到子类具体的计算逻辑。线程池的整体监控在父类中由具体的监听类来实现。
这里本申请实施例提供的调度线程资源的方法仅以上述一个线程为例进行说明,在具体实施的过程中,父类将依据收到的调度请求为多个子类配置线程资源,同时,监听多个线程的数据处理状态,并在每个线程结束计算任务后释放该线程资源,达到了系统资源的集中调度和使用,并对系统资源有效的进行控制回收。
图2是根据本发明实施例的一种调度线程资源的方法的流程示意图,如图2所示,在本申请实施例提供的调度线程资源的方法中,子类在执行execute方法后,调用父类多线程方法(即,父类接收计算逻辑模块(子类)发送的对应计算任务的调度请求),父类在接收到调度请求后,创建线程池资源,监听该线程资源并注册计算任务与对应的线程资源的对应关系,在获得多线程资源后,父类通过调用反射调用方法由线程调用子类的处理业务,并监听该线程,在监听到该计算任务结束后,是否该线程资源以及该计算任务对应的内存资源。
实施例二
图3是根据本发明另一实施例的调度线程资源的方法的流程示意图,如图3所示,在计算逻辑模块侧,该方法包括如下步骤:
步骤S302,依据预先得到的调度接口的判断结果,生成计算任务的调度请求;
步骤S304,向线程资源模块发送计算任务的调度请求;
步骤S306,接收线程资源模块依据调度请求分配的线程资源。
对应图1和图2所示的实施例,本申请实施例提供的调度线程资源的方法在计算逻辑模块侧,即,子类侧进行说明,在计算机内部线程资源调度环境中,线程资源模块可以为父类,子类依据org.quartz.Job调度接口的判断结果,生成计算任务的调度请求,并将该调度请求发送至父类,进而接收父类依据该调度请求分配的线程资源。
通过上述步骤,通过依据预先得到的调度接口的判断结果,生成计算任务的调度请求;向线程资源模块发送计算任务的调度请求;接收线程资源模块依据调度请求分配的线程资源。达到了合理分配系统资源的目的,从而实现了系统资源均匀分配以及内存资源的分配和回收的技术效果,进而解决了由于相关技术中多线程计算是与计算方法绑定的,导致若多个任务同时执行时,系统资源分配不均衡以及资源未释放导致的内存泄露的技术问题。
可选的,步骤S302中依据预先得到的调度接口的判断结果,生成计算任务的调度请求包括:
Step1,触发调度接口;
Step2,通过调度接口判断是否支持调度线程资源算法;
Step3,当判断结果为是时,执行调度线程资源算法,生成调度请求。
具体的,结合Step1至Step3,调度接口org.quartz.Job在接收到计算任务后触发,并判断该子类是否支持调度线程资源算法,如果该子类支持调度线程资源算法,执行该调度线程资源算法,生成调度请求。
这里图4是根据本发明另一实施例的一种调度线程资源的方法的流程示意图,如图4所示,调度接口判断是否可调度,若否,子类将不执行请求调度线程资源的行为;若是,子类通过execute算法调用父类多线程方法,在父类收到后,由父类创建该计算任务对应的线程资源,并对该线程进行监听,同时,父类通过多线程调用反射调用方法(即,图4中所示的反射调用处理器)调用子类计算逻辑(即,图4中所示的调用子类业务),当父类监听到在该线程上计算任务完成时,将释放该线程资源并执行新计算任务;或者,当监听到在该线程上计算任务未完成时,父类将继续等待并监听。
可选的,上述步骤Step1中触发调度接口包括:
依据预设周期触发调度接口,并接收计算任务。
这里本申请实施例提供的调度线程资源的方法中调度接口可以依据预设周期触发调度接口,从而接收结算任务。
实施例三
图5是根据本发明实施例的调度线程资源的装置的结构示意图,如图5所示,该装置包括:接收模块52、资源创建模块54和调度模块56,其中,
接收模块52,用于接收计算逻辑模块发送的对应计算任务的调度请求;
资源创建模块54,用于依据调度请求创建对应的线程资源;
调度模块56,用于将线程资源返回计算逻辑模块。
本申请实施例提供的调度线程资源的装置,通过接收计算逻辑模块发送的对应计算任务的调度请求;依据调度请求创建对应的线程资源;将线程资源返回计算逻辑模块,达到了合理分配系统资源的目的,从而实现了系统资源均匀分配以及内存资源的分配和回收的技术效果,进而解决了由于相关技术中多线程计算是与计算方法绑定的,导致若多个任务同时执行时,系统资源分配不均衡以及资源未释放导致的内存泄露的技术问题。
可选的,图6是根据本发明实施例的一种调度线程资源的装置的结构示意图,如图6所示,资源创建模块54包括:解析单元541、创建单元542和配置单元543,其中,
解析单元541,用于解析调度请求,得到计算逻辑模块的模块名以及对应计算任务的计算方法名;
创建单元542,用于依据模块名和计算方法名创建线程池资源;
配置单元543,用于依据计算任务配置对应的线程资源。
可选的,图7是根据本发明实施例的一种调度线程资源的装置的结构示意图,如图7所示,配置单元543包括:注册子单元5431和监听子单元5432,其中,
注册子单元5431,用于将计算任务与对应的线程资源之间的对应关系进行注册;
监听子单元5432,用于监听线程资源。
可选的,图8是根据本发明实施例的另一种调度线程资源的装置的结构示意图,如图8所示,调度模块56包括:调度单元561,其中,
调度单元561,用于通过反射调用方法依据线程资源调用计算逻辑模块中的计算任务,反射调用方法,用于根据模块名和计算方法名获取计算任务的计算逻辑。
可选的,图9是根据本发明实施例的又一种调度线程资源的装置的结构示意图,如图9所示,本申请实施例提供的调度线程资源的装置还包括:监听模块57和资源释放模块58,其中,
监听模块57,用于在将线程资源返回计算逻辑模块之后,监听计算逻辑模块应用线程资源;
资源释放模块58,用于当监听结果为计算逻辑模块的计算任务完成时,释放线程资源和对应计算任务的内存资源。
实施例四
图10是根据本发明另一实施例的调度线程资源的装置的结构示意图,如图10所示,该装置包括:请求生成模块1002、发送模块1004和接收模块1006,其中,
请求生成模块1002,用于依据预先得到的调度接口的判断结果,生成计算任务的调度请求;
发送模块1004,用于向线程资源模块发送计算任务的调度请求;
接收模块1006,用于接收线程资源模块依据调度请求分配的线程资源。
本申请实施例提供的调度线程资源的装置,通过依据预先得到的调度接口的判断结果,生成计算任务的调度请求;向线程资源模块发送计算任务的调度请求;接收线程资源模块依据调度请求分配的线程资源。达到了合理分配系统资源的目的,从而实现了系统资源均匀分配以及内存资源的分配和回收的技术效果,进而解决了由于相关技术中多线程计算是与计算方法绑定的,导致若多个任务同时执行时,系统资源分配不均衡以及资源未释放导致的内存泄露的技术问题。
可选的,图11是根据本发明另一实施例的一种调度线程资源的装置的结构示意图,如图11所示,请求生成模块1002,包括:触发单元10021、判断单元10022和请求生成单元10023,其中,
触发单元10021,用于触发调度接口;
判断单元10022,用于通过调度接口判断是否支持调度线程资源算法;
请求生成单元10023,用于当判断结果为是时,执行调度线程资源算法,生成调度请求。
可选的,图12是根据本发明另一实施例的另一种调度线程资源的装置的结构示意图,如图12所示,触发单元10021包括:接收子单元100211,其中
接收子单元100211,用于依据预设周期触发调度接口,并接收计算任务。
实施例五
图13是根据本发明实施例的调度线程资源的系统的结构示意图,如图13所示,该系统包括:线程资源模块1301和计算逻辑模块1302,计算逻辑模块1302和线程资源模块1301数据连接,其中,
线程资源模块1301为图5至9中任一所示的调度线程资源的装置;
计算逻辑模块1302为图10至12中任一所示的调度线程资源的装置。
本申请实施例提供的调度线程资源的系统,通过接收计算逻辑模块发送的对应计算任务的调度请求;依据调度请求创建对应的线程资源;将线程资源返回计算逻辑模块,达到了合理分配系统资源的目的,从而实现了系统资源均匀分配以及内存资源的分配和回收的技术效果,进而解决了由于相关技术中多线程计算是与计算方法绑定的,导致若多个任务同时执行时,系统资源分配不均衡以及资源未释放导致的内存泄露的技术问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种调度线程资源的方法,其特征在于,包括:
接收计算逻辑模块发送的对应计算任务的调度请求;
依据所述调度请求创建对应的线程资源;
将所述线程资源返回所述计算逻辑模块;其中,所述依据所述调度请求创建对应的线程资源包括:解析所述调度请求,得到所述计算逻辑模块的模块名以及对应所述计算任务的计算方法名;依据所述模块名和所述计算方法名创建线程池资源;依据所述计算任务配置对应的所述线程资源。
2.根据权利要求1所述的方法,其特征在于,所述依据所述计算任务配置对应的所述线程资源包括:
将所述计算任务与对应的所述线程资源之间的对应关系进行注册;
监听所述线程资源。
3.根据权利要求1所述的方法,其特征在于,所述将所述线程资源返回所述计算逻辑模块包括:
通过反射调用方法依据所述线程资源调用所述计算逻辑模块中的所述计算任务,所述反射调用方法,用于根据所述模块名和所述计算方法名获取所述计算任务的计算逻辑。
4.根据权利要求1所述的方法,其特征在于,在所述将所述线程资源返回所述计算逻辑模块之后,所述方法还包括:
监听所述计算逻辑模块应用所述线程资源;
当监听结果为所述计算逻辑模块的所述计算任务完成时,释放所述线程资源和对应所述计算任务的内存资源。
5.一种调度线程资源的方法,其特征在于,包括:
依据预先得到的调度接口的判断结果,生成计算任务的调度请求;
向线程资源模块发送所述计算任务的调度请求;
接收所述线程资源模块依据所述调度请求分配的线程资源;
其中,在计算机内部线程资源调度环境中,所述线程资源模块为父类,子类依据org.quartz.Job调度接口的判断结果,生成计算任务的调度请求。
6.根据权利要求5所述的方法,其特征在于,所述依据预先得到的调度接口的判断结果,生成计算任务的调度请求包括:
触发所述调度接口;
通过所述调度接口判断是否支持调度线程资源算法;
当判断结果为是时,执行所述调度线程资源算法,生成所述调度请求。
7.根据权利要求6所述的方法,其特征在于,所述触发调度接口包括:
依据预设周期触发所述调度接口,并接收所述计算任务。
8.一种调度线程资源的装置,其特征在于,包括:
接收模块,用于接收计算逻辑模块发送的对应计算任务的调度请求;
资源创建模块,用于依据所述调度请求创建对应的线程资源;
调度模块,用于将所述线程资源返回所述计算逻辑模块;
其中,所述资源创建模块包括:解析单元,用于解析所述调度请求,得到所述计算逻辑模块的模块名以及对应所述计算任务的计算方法名;创建单元,用于依据所述模块名和所述计算方法名创建线程池资源;配置单元,用于依据所述计算任务配置对应的所述线程资源。
9.根据权利要求8所述的装置,其特征在于,所述配置单元包括:
注册子单元,用于将所述计算任务与对应的所述线程资源之间的对应关系进行注册;
监听子单元,用于监听所述线程资源。
10.根据权利要求8所述的装置,其特征在于,所述调度模块包括:
调度单元,用于通过反射调用方法依据所述线程资源调用所述计算逻辑模块中的所述计算任务,所述反射调用方法,用于根据所述模块名和所述计算方法名获取所述计算任务的计算逻辑。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
监听模块,用于在所述将所述线程资源返回所述计算逻辑模块之后,监听所述计算逻辑模块应用所述线程资源;
资源释放模块,用于当监听结果为所述计算逻辑模块的所述计算任务完成时,释放所述线程资源和对应所述计算任务的内存资源。
12.一种调度线程资源的装置,其特征在于,包括:
请求生成模块,用于依据预先得到的调度接口的判断结果,生成计算任务的调度请求;
发送模块,用于向线程资源模块发送所述计算任务的调度请求;
接收模块,用于接收所述线程资源模块依据所述调度请求分配的线程资源;
其中,在计算机内部线程资源调度环境中,所述线程资源模块为父类,子类依据org.quartz.Job调度接口的判断结果,生成计算任务的调度请求。
13.根据权利要求12所述的装置,其特征在于,所述请求生成模块,包括:
触发单元,用于触发所述调度接口;
判断单元,用于通过所述调度接口判断是否支持调度线程资源算法;
请求生成单元,用于当判断结果为是时,执行所述调度线程资源算法,生成所述调度请求。
14.根据权利要求13所述的装置,其特征在于,所述触发单元包括:
接收子单元,用于依据预设周期触发所述调度接口,并接收所述计算任务。
15.一种调度线程资源的系统,其特征在于,包括:线程资源模块和计算逻辑模块,所述计算逻辑模块和所述线程资源模块数据连接,其中,
所述线程资源模块为权利要求8至11中任一项所述的调度线程资源的装置;所述计算逻辑模块为权利要求12至14中任一项所述的调度线程资源的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610353933.8A CN105975346B (zh) | 2016-05-25 | 2016-05-25 | 调度线程资源的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610353933.8A CN105975346B (zh) | 2016-05-25 | 2016-05-25 | 调度线程资源的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105975346A CN105975346A (zh) | 2016-09-28 |
CN105975346B true CN105975346B (zh) | 2019-06-18 |
Family
ID=56955912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610353933.8A Active CN105975346B (zh) | 2016-05-25 | 2016-05-25 | 调度线程资源的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105975346B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175071B (zh) * | 2019-04-09 | 2021-07-30 | 南昌嘉研科技有限公司 | 一种多线程程序架构方法及架构系统 |
CN110659017B (zh) * | 2019-09-19 | 2024-03-29 | 上海客佳信息科技有限公司 | 一种外部请求处理方法及相关装置 |
CN113157437A (zh) * | 2021-03-03 | 2021-07-23 | 北京澎思科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113535401A (zh) * | 2021-07-19 | 2021-10-22 | 大唐网络有限公司 | 5g通讯中rlc层的数据处理方法、装置、系统以及处理器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541653A (zh) * | 2010-12-24 | 2012-07-04 | 新奥特(北京)视频技术有限公司 | 一种多任务线程池调度方法和系统 |
CN103605498A (zh) * | 2013-12-05 | 2014-02-26 | 用友软件股份有限公司 | 单线程任务的多线程执行方法及系统 |
CN104111877A (zh) * | 2014-07-29 | 2014-10-22 | 广东能龙教育股份有限公司 | 一种基于线程调配引擎的线程资源动态调配系统和方法 |
US8984518B2 (en) * | 2010-10-14 | 2015-03-17 | Electronics And Telecommunications Research Institute | Apparatus and method for executing components based on thread pool |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135117B2 (en) * | 2012-12-10 | 2015-09-15 | International Business Machines Corporation | Recovery for long running multithreaded processes |
-
2016
- 2016-05-25 CN CN201610353933.8A patent/CN105975346B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8984518B2 (en) * | 2010-10-14 | 2015-03-17 | Electronics And Telecommunications Research Institute | Apparatus and method for executing components based on thread pool |
CN102541653A (zh) * | 2010-12-24 | 2012-07-04 | 新奥特(北京)视频技术有限公司 | 一种多任务线程池调度方法和系统 |
CN103605498A (zh) * | 2013-12-05 | 2014-02-26 | 用友软件股份有限公司 | 单线程任务的多线程执行方法及系统 |
CN104111877A (zh) * | 2014-07-29 | 2014-10-22 | 广东能龙教育股份有限公司 | 一种基于线程调配引擎的线程资源动态调配系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105975346A (zh) | 2016-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105975346B (zh) | 调度线程资源的方法、装置及系统 | |
CN106330576B (zh) | 容器化微服务自动伸缩及迁移调度的方法、系统和设备 | |
Van den Bossche et al. | Cost-efficient scheduling heuristics for deadline constrained workloads on hybrid clouds | |
CN105933372B (zh) | 任务分配执行方法、服务器及终端 | |
CN105512083B (zh) | 基于yarn的资源管理方法、装置及系统 | |
CN103747107B (zh) | 一种兼容式云操作平台及其实现方法 | |
CN108363623A (zh) | Gpu资源调度方法、装置、设备及计算机可读存储介质 | |
Hoenisch et al. | Self-adaptive resource allocation for elastic process execution | |
CN109062658A (zh) | 实现计算资源服务化的调度方法、装置、介质、设备及系统 | |
CN106548262A (zh) | 用于处理任务的资源的调度方法、装置和系统 | |
CN107291547A (zh) | 一种任务调度处理方法、装置及系统 | |
CN107301093B (zh) | 一种管理资源的方法和装置 | |
CN105404549B (zh) | 基于yarn架构的虚拟机调度系统 | |
CN110109752A (zh) | 一种任务分配方法、装置、电子设备及存储介质 | |
CN109445944A (zh) | 一种基于dpdk的网络数据采集处理系统及其方法 | |
CN112637304B (zh) | 一种跨云资源处理系统和资源管理方法 | |
CN109564525A (zh) | 按需网络代码执行环境中的异步任务管理 | |
CA2365730A1 (en) | Method and device to assist in the execution of tasks of parallel jobs | |
CN110661842A (zh) | 一种资源的调度管理方法、电子设备和存储介质 | |
Gutierrez-Garcia et al. | Agent-based cloud bag-of-tasks execution | |
CN107133103B (zh) | 用于数据流式计算的内存管理系统及其方法 | |
CN105808346B (zh) | 一种任务调度方法与装置 | |
CN111399968B (zh) | 一种基于容器的虚拟资源管理方法、装置及系统 | |
CN109408216A (zh) | 任务生成方法、装置、设备及存储介质 | |
EP3103217A1 (en) | Monitoring system and monitoring method for software defined networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100094 Beijing Haidian District Yongjia North Road 6, 5 2 story 218 room. Patentee after: Guoxing Network Co.,Ltd. Address before: 100094 Beijing Haidian District Yongjia North Road 6, 5 2 story 218 room. Patentee before: DATANG NETWORK CO.,LTD. |