CN112114862B - spring boot实例并发处理方法及装置 - Google Patents
spring boot实例并发处理方法及装置 Download PDFInfo
- Publication number
- CN112114862B CN112114862B CN201910537075.6A CN201910537075A CN112114862B CN 112114862 B CN112114862 B CN 112114862B CN 201910537075 A CN201910537075 A CN 201910537075A CN 112114862 B CN112114862 B CN 112114862B
- Authority
- CN
- China
- Prior art keywords
- instance
- class
- concurrency
- stack
- spring boot
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 238000003672 processing method Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 2
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种spring boot实例并发处理方法及装置,所述方法包括:获取spring boot的实例并发请求信息,所述实例并发请求信息中包含待执行的类的堆栈;获取用户输入的对所述堆栈的栈顶的类进行的声明;根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类;对可以并发执行的类进行并发处理生成相应的实例。本发明实施例提供的spring boot实例并发处理方法及装置,通过接管spring boot的实例并发处理任务,使用户仅需要对待执行的类的堆栈的栈顶的类进行声明,无需对每个需要的类做声明,减少了代码使用量,简化了实际使用时的步骤,提高了spring boot实例的并发性能。并且通过配置文件实现对实例进行有效的生命周期管理。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种spring boot实例并发处理方法及装置。
背景技术
spring boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。由于spring boot的方便快捷,在现阶段的web项目中,应用十分普遍。
在大规模并发场景下,单实例模式必然引起性能处理瓶颈,有必要生成多个实例并发处理业务,保证效率。为此,spring boot提供了注解方式标明一个类可以生成任意多个内存实例的功能,
由于spring boot为保证内存使用的稳定性,默认采用单实例模式生成bean,此模式下内存消耗基本可以保持稳定。因此,在大规模并发场景下,需要对每个类单独做声明,增加了代码量,实际使用时很繁琐,系统运行效率低。并且,在实例无限制并发时,容易导致系统崩溃,无法对并发实例进行有效的生命周期管理。
发明内容
本发明实施例的目的是提供一种克服上述问题或者至少部分地解决上述问题的spring boot实例并发处理方法及装置。
为了解决上述技术问题,一方面,本发明实施例提供一种spring boot实例并发处理方法,其特征在于,包括:
获取spring boot的实例并发请求信息,所述实例并发请求信息中包含待执行的类的堆栈;
获取用户输入的对所述堆栈的栈顶的类进行的声明;
根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类;
对可以并发执行的类进行并发处理生成相应的实例。
进一步地,所述根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类,具体包括:
获取所述配置文件,所述配置文件中包含若干个预先配置的类;
判断所述堆栈中的每一个类是否包含在所述配置文件中,若是,则是可以并发执行的类,若否,则不是可以并发执行的类。
进一步地,所述对可以并发执行的类进行并发处理生成相应的实例,具体包括:
若判断获知实例池中有闲置的实例,则直接复用闲置实例;
若判断获知实例池中没有闲置的实例,则根据当前的内存信息和类的优先级创建新的实例,其中,所述配置文件中还包含若干个预先配置的类的优先级。
进一步地,所述根据当前的内存信息和类的优先级创建新的实例,具体包括:
若判断获知当前的内存足够用,则为每一可以并发执行的类创建新的实例;
若判断获知当前的内存不足以为每一可以并发执行的类创建新的实例,则为优先级较高的可以并发执行的类创建新的实例。
进一步地,所述对可以并发执行的类进行并发处理生成相应的实例之后,还包括:
若判断获知线程池中有闲置的线程,则直接复用闲置线程,包装实例执行;
若判断获知实例池中没有闲置的线程,则根据当前的内存信息和类的优先级创建新的线程,包装实例执行,其中,所述配置文件中还包含若干个预先配置的类的优先级。
进一步地,所述根据当前的内存信息和类的优先级创建新的线程,具体包括:
若判断获知当前的内存足够用,则为每一实例创建新的线程;
若判断获知当前的内存不足以为每一实例创建新的线程,则为优先级较高的可以并发执行的类对应的实例创建新的线程。
进一步地,所述对可以并发执行的类进行并发处理生成相应的实例之前,还包括:
获取spring boot当前的内存信息。
另一方面,本发明实施例提供一种spring boot实例并发处理装置,包括:
接口模块,用于获取spring boot的实例并发请求信息,所述实例并发请求信息中包含待执行的类的堆栈;
配置管理模块,用于获取用户输入的对所述堆栈的栈顶的类进行的声明;
并发控制模块,用于根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类;
性能管理模块,用于对可以并发执行的类进行并发处理生成相应的实例。
再一方面,本发明实施例提供一种电子设备,包括:存储器、处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述方法的步骤。
又一方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现上述方法的步骤。
本发明实施例提供的spring boot实例并发处理方法及装置,通过接管springboot的实例并发处理任务,使用户仅需要对待执行的类的堆栈的栈顶的类进行声明,无需对每个需要的类做声明,减少了代码使用量,简化了实际使用时的步骤,提高了springboot实例的并发性能。并且通过配置文件实现对实例进行有效的生命周期管理。
附图说明
图1为本发明实施例提供的spring boot实例并发处理方法示意图;
图2为本发明实施例提供的一种spring boot实例并发处理流程示意图;
图3为本发明实施例提供的spring boot实例并发处理装置示意图;
图4为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的spring boot实例并发处理方法示意图,如图1所示,本发明实施例提供一种spring boot实例并发处理装置,其执行主体为,该方法包括:
步骤S101、获取spring boot的实例并发请求信息,所述实例并发请求信息中包含待执行的类的堆栈。
具体来说,本发明实施例中,通过spring boot实例并发处理装置接管springboot的实例并发处理任务,spring boot实例并发处理装置通过标准接口与spring boot相连接。
当spring boot有需要进行并发处理的实例时,spring boot通过标准接口将实例并发请求信息发送给spring boot实例并发处理装置,spring boot实例并发处理装置通过接口模块获取spring boot的实例并发请求信息,该实例并发请求信息中包含待执行的类的堆栈,该堆栈中包含了待执行的类的调用链,以及每一个类的类型等信息。
步骤S102、获取用户输入的对所述堆栈的栈顶的类进行的声明。
具体来说,本发明实施例中,用户仅需要对待执行的类的堆栈的栈顶的类进行声明,无需对每个需要的类做声明。
在获取待执行的类的堆栈之后,解析出栈顶的类,提示用户对该类进行声明,然后,获取用户输入的对堆栈的栈顶的类进行的声明。该声明中可以包含用户对栈顶的类的并发量的声明,则被栈顶的类所调用的类的并发量,与栈顶的类的并发量相同,被调用的类则无需再进行声明。
例如,用户声明栈顶的类A的并发量为5,A调用类B,则B的并发量也为5,用户无需再对B的并发量进行声明,B调用类C,则C的并发量也为5,用户也无需再对C的并发量进行声明。
步骤S103、根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类。
具体来说,spring boot的实例并发请求信息中包含了多个类,有的可以通过spring boot实例并发处理装置接管进行并发处理,有的不能进行并发处理。
用户在使用之前,首先可以在配置文件中配置若干个类,并按照包或者类的名称设置类的优先级。该配置文件可以采用xml格式。配置文件中配置的类可以通过springboot实例并发处理装置接管进行并发处理,配置文件中没有配置的类不能通过springboot实例并发处理装置接管进行并发处理。
spring boot实例并发处理装置根据用户预先配置的配置文件确定堆栈中可以并发执行的类。
步骤S104、对可以并发执行的类进行并发处理生成相应的实例。
具体来说,在确定可以并发执行的类之后,通过实例池对可以并发执行的类进行并发处理生成相应的实例,通过线程池中的线程包装实例实际执行。
例如,先判断当前的实例池是否有闲置实例,如果有闲置实例,直接复用闲置实例进入线程池,通过线程池中的线程包装实例实际执行。
如果没有闲置实例,根据spring boot当前的内存信息,类的并发优先级决策是否可以创建实例。
同样,进入线程池以后,需要判断线程池是否有闲置线程,如果有闲置线程,直接复用闲置线程,包装实例实际执行。
如果没有闲置线程,根据spring boot当前的内存信息,类的并发优先级决策是否可以创建新的线程。
本发明实施例提供的spring boot实例并发处理方法,通过接管spring boot的实例并发处理任务,使用户仅需要对待执行的类的堆栈的栈顶的类进行声明,无需对每个需要的类做声明,减少了代码使用量,简化了实际使用时的步骤,提高了spring boot实例的并发性能。并且通过配置文件实现对实例进行有效的生命周期管理。
基于上述任一实施例,进一步地,所述根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类,具体包括:
获取所述配置文件,所述配置文件中包含若干个预先配置的类;
判断所述堆栈中的每一个类是否包含在所述配置文件中,若是,则是可以并发执行的类,若否,则不是可以并发执行的类。
具体来说,本发明实施例中,用户在使用之前,首先需要在配置文件中配置若干个类。配置文件中配置的类可以通过spring boot实例并发处理装置接管进行并发处理,配置文件中没有配置的类不能通过spring boot实例并发处理装置接管进行并发处理。
spring boot实例并发处理装置根据用户预先配置的配置文件确定堆栈中可以并发执行的类时,首先,获取用户预先配置的配置文件。
然后,逐一判断待执行的类的堆栈中的每一个类是否包含在该配置文件中,若是,则是可以并发执行的类,若否,则不是可以并发执行的类。不是可以并发执行的类,将会被反馈给spring boot,由spring boot按照单实例模式执行。
例如,如果类A已经在该配置文件中配置,则类A是可以并发执行的类。
如果类B没有在该配置文件中配置,则类B不是可以并发执行的类。类B将会被反馈给spring boot,由spring boot按照单实例模式执行。
本发明实施例提供的spring boot实例并发处理方法,通过接管spring boot的实例并发处理任务,使用户仅需要对待执行的类的堆栈的栈顶的类进行声明,无需对每个需要的类做声明,减少了代码使用量,简化了实际使用时的步骤,提高了spring boot实例的并发性能。并且通过配置文件实现对实例进行有效的生命周期管理。
基于上述任一实施例,进一步地,所述对可以并发执行的类进行并发处理生成相应的实例,具体包括:
若判断获知实例池中有闲置的实例,则直接复用闲置实例;
若判断获知实例池中没有闲置的实例,则根据当前的内存信息和类的优先级创建新的实例,其中,所述配置文件中还包含若干个预先配置的类的优先级。
具体来说,用户在使用之前,首先需要在配置文件中配置若干个类,并按照包或者类的名称设置类的优先级。
spring boot实例并发处理装置可以不断的采集spring boot中的jvm内存信息。
在对可以并发执行的类进行并发处理生成相应的实例时,首先判断当前的实例池是否有闲置实例。
如果实例池中有闲置的实例,则直接复用闲置实例。
如果实例池中没有闲置的实例,则根据spring boot当前的内存信息和配置文件中各个类的优先级创建新的实例。优先为优先级较高的类创建实例,没有为其创建新的实例的类,将进入等待状态,直到有闲置的实例出现,或者直到可以为其创建新的实例时为止。
本发明实施例提供的spring boot实例并发处理方法,通过接管spring boot的实例并发处理任务,使用户仅需要对待执行的类的堆栈的栈顶的类进行声明,无需对每个需要的类做声明,减少了代码使用量,简化了实际使用时的步骤,提高了spring boot实例的并发性能。并且通过配置文件实现对实例进行有效的生命周期管理。
基于上述任一实施例,进一步地,所述根据当前的内存信息和类的优先级创建新的实例,具体包括:
若判断获知当前的内存足够用,则为每一可以并发执行的类创建新的实例;
若判断获知当前的内存不足以为每一可以并发执行的类创建新的实例,则为优先级较高的可以并发执行的类创建新的实例。
具体来说,spring boot实例并发处理装置可以不断的采集spring boot中的jvm内存信息。
在根据当前的内存信息和类的优先级创建新的实例时,首先判断spring boot的当前的内存是否足够用。
如果spring boot的当前的内存足够用则为每一可以并发执行的类创建新的实例。
如果spring boot的当前的内存不足以为每一可以并发执行的类创建新的实例,则为优先级较高的可以并发执行的类创建新的实例。没有为其创建新的实例的类,将进入等待状态,直到有闲置的实例出现,或者直到可以为其创建新的实例时为止。
本发明实施例提供的spring boot实例并发处理方法,通过接管spring boot的实例并发处理任务,使用户仅需要对待执行的类的堆栈的栈顶的类进行声明,无需对每个需要的类做声明,减少了代码使用量,简化了实际使用时的步骤,提高了spring boot实例的并发性能。并且通过配置文件实现对实例进行有效的生命周期管理。
基于上述任一实施例,进一步地,所述对可以并发执行的类进行并发处理生成相应的实例之后,还包括:
若判断获知线程池中有闲置的线程,则直接复用闲置线程,包装实例执行;
若判断获知实例池中没有闲置的线程,则根据当前的内存信息和类的优先级创建新的线程,包装实例执行,其中,所述配置文件中还包含若干个预先配置的类的优先级。
具体来说,spring boot实例并发处理装置可以不断的采集spring boot中的jvm内存信息。
在对可以并发执行的类进行并发处理生成相应的实例之后,还需要执行实例。
首先判断当前的线程池是否有闲置线程。
如果线程池中有闲置的线程,则直接复用闲置线程,包装实例执行。
如果线程池中没有闲置的线程,则根据spring boot当前的内存信息和配置文件中各个类的优先级创建新的线程。优先为优先级较高的类对应的实例创建线程,没有为其创建新的线程的实例,将进入等待状态,直到有闲置的线程出现,或者直到可以为其创建新的线程时为止。
本发明实施例提供的spring boot实例并发处理方法,通过接管spring boot的实例并发处理任务,使用户仅需要对待执行的类的堆栈的栈顶的类进行声明,无需对每个需要的类做声明,减少了代码使用量,简化了实际使用时的步骤,提高了spring boot实例的并发性能。并且通过配置文件实现对实例进行有效的生命周期管理。
基于上述任一实施例,进一步地,所述根据当前的内存信息和类的优先级创建新的线程,具体包括:
若判断获知当前的内存足够用,则为每一实例创建新的线程;
若判断获知当前的内存不足以为每一实例创建新的线程,则为优先级较高的可以并发执行的类对应的实例创建新的线程。
具体来说,spring boot实例并发处理装置可以不断的采集spring boot中的jvm内存信息。
在根据当前的内存信息和类的优先级创建新的线程时,首先判断spring boot的当前的内存是否足够用。
如果spring boot的当前的内存足够用则为每一实例创建新的线程,通过创建新的线程执行每一实例。
如果spring boot的当前的内存不足以为每一实例创建新的线程,则为优先级较高的可以并发执行的类对应的实例创建新的线程。通过创建新的线程优先对这一部分实例进行执行。没有为其创建新的线程的实例,将进入等待状态,直到有闲置的线程出现,或者直到可以为其创建新的线程时为止。
本发明实施例提供的spring boot实例并发处理方法,通过接管spring boot的实例并发处理任务,使用户仅需要对待执行的类的堆栈的栈顶的类进行声明,无需对每个需要的类做声明,减少了代码使用量,简化了实际使用时的步骤,提高了spring boot实例的并发性能。并且通过配置文件实现对实例进行有效的生命周期管理。
基于上述任一实施例,进一步地,所述对可以并发执行的类进行并发处理生成相应的实例之前,还包括:
获取spring boot当前的内存信息。
具体来说,在对可以并发执行的类进行并发处理生成相应的实例之前,springboot实例并发处理装置不断的采集spring boot中的jvm内存信息,该内存信息包括内存的使用量,内存的剩余量等参数。
本发明实施例提供的spring boot实例并发处理方法,通过接管spring boot的实例并发处理任务,使用户仅需要对待执行的类的堆栈的栈顶的类进行声明,无需对每个需要的类做声明,减少了代码使用量,简化了实际使用时的步骤,提高了spring boot实例的并发性能。并且通过配置文件实现对实例进行有效的生命周期管理。
基于上述任一实施例,图2为本发明实施例提供的一种spring boot实例并发处理流程示意图,如图2所示,其中一种spring boot实例并发处理流程如下:
1、取spring boot的对象请求。
2、读取并发配置信息:包括并发的类及其优先级。
3、读取采集到的内存信息。
4、进入并发控制模块准备分配对象。
5、判别当前的实例池是否有闲置实例。
6、如果有闲置实例,直接复用闲置实例进入线程池第10步。
7、如果没有闲置实例,根据当前的内存信息,并发优先级决策是否可以创建实例。
8、如果可以创建实例,创建新的实例放入实例池,并进入线程池。
9、如果不可以创建,进入等待状态,返回第5步。
10、判别线程池是否有闲置线程。
11、有闲置线程,复用线程包装实例。
12、无闲置线程,根据当前的内存信息,并发优先级决策是否可以创建线程。
13、如果可以创建线程,创建新的线程,进入线程池,并包装实例执行。
14、如果不可以创建线程,进入10步。
基于上述任一实施例,图3为本发明实施例提供的spring boot实例并发处理装置示意图,如图3所示,本发明实施例提供一种spring boot实例并发处理装置,包括接口模块301、配置管理模块302、并发控制模块303和性能管理模块304,其中:
接口模块301用于获取spring boot的实例并发请求信息,所述实例并发请求信息中包含待执行的类的堆栈;配置管理模块302用于获取用户输入的对所述堆栈的栈顶的类进行的声明;并发控制模块303用于根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类;性能管理模块304用于对可以并发执行的类进行并发处理生成相应的实例。
本发明实施例提供一种spring boot实例并发处理装置,用于执行上述任一实施例中所述的方法,通过本实施例提供的装置执行上述某一实施例中所述的方法的具体步骤与上述相应实施例相同,此处不再赘述。
本发明实施例提供的spring boot实例并发处理装置,通过接管spring boot的实例并发处理任务,使用户仅需要对待执行的类的堆栈的栈顶的类进行声明,无需对每个需要的类做声明,减少了代码使用量,简化了实际使用时的步骤,提高了spring boot实例的并发性能。并且通过配置文件实现对实例进行有效的生命周期管理。
基于上述任一实施例,进一步地,所述并发控制模块具体用于:
获取所述配置文件,所述配置文件中包含若干个预先配置的类;
判断所述堆栈中的每一个类是否包含在所述配置文件中,若是,则是可以并发执行的类,若否,则不是可以并发执行的类。
基于上述任一实施例,进一步地,所述性能管理模块包括实例复用单元和实例新建单元,其中:
实例复用单元,用于若判断获知实例池中有闲置的实例,则直接复用闲置实例;
实例新建单元,用于若判断获知实例池中没有闲置的实例,则根据当前的内存信息和类的优先级创建新的实例,其中,所述配置文件中还包含若干个预先配置的类的优先级。
基于上述任一实施例,进一步地,所述实例新建单元具体用于:
若判断获知当前的内存足够用,则为每一可以并发执行的类创建新的实例;
若判断获知当前的内存不足以为每一可以并发执行的类创建新的实例,则为优先级较高的可以并发执行的类创建新的实例。
基于上述任一实施例,进一步地,所述性能管理模块包括线程复用单元和线程新建单元,其中:
线程复用单元,用于若判断获知线程池中有闲置的线程,则直接复用闲置线程,包装实例执行;
线程新建单元,用于若判断获知实例池中没有闲置的线程,则根据当前的内存信息和类的优先级创建新的线程,包装实例执行,其中,所述配置文件中还包含若干个预先配置的类的优先级。
基于上述任一实施例,进一步地,所述线程新建单元具体用于:
若判断获知当前的内存足够用,则为每一实例创建新的线程;
若判断获知当前的内存不足以为每一实例创建新的线程,则为优先级较高的可以并发执行的类对应的实例创建新的线程。
基于上述任一实施例,进一步地,所述装置还包括jvm监控模块,用于:
获取spring boot当前的内存信息。
图4为本发明实施例提供的电子设备的结构示意图,如图4所示,所述设备包括:处理器(processor)401、存储器(memory)402、总线403,以及存储在存储器上并可在处理器上运行的计算机程序。
其中,处理器401和存储器402通过总线403完成相互间的通信;
处理器401用于调用并执行存储器402中的计算机程序,以执行上述各方法实施例中的步骤,例如包括:
获取spring boot的实例并发请求信息,所述实例并发请求信息中包含待执行的类的堆栈;
获取用户输入的对所述堆栈的栈顶的类进行的声明;
根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类;
对可以并发执行的类进行并发处理生成相应的实例。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例中的步骤,例如包括:
获取spring boot的实例并发请求信息,所述实例并发请求信息中包含待执行的类的堆栈;
获取用户输入的对所述堆栈的栈顶的类进行的声明;
根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类;
对可以并发执行的类进行并发处理生成相应的实例。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现上述各方法实施例中的步骤,例如包括:
获取spring boot的实例并发请求信息,所述实例并发请求信息中包含待执行的类的堆栈;
获取用户输入的对所述堆栈的栈顶的类进行的声明;
根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类;
对可以并发执行的类进行并发处理生成相应的实例。
以上所描述的装置及设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种spring boot实例并发处理方法,其特征在于,包括:
获取spring boot的实例并发请求信息,所述实例并发请求信息中包含待执行的类的堆栈;
获取用户输入的对所述堆栈的栈顶的类进行的声明;所述声明包含用户对栈顶的类的并发量,且被栈顶的类所调用的类的并发量,与栈顶的类的并发量相同;
根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类;
对可以并发执行的类进行并发处理生成相应的实例。
2.根据权利要求1所述的spring boot实例并发处理方法,其特征在于,所述根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类,具体包括:
获取所述配置文件,所述配置文件中包含若干个预先配置的类;
判断所述堆栈中的每一个类是否包含在所述配置文件中,若是,则是可以并发执行的类,若否,则不是可以并发执行的类。
3.根据权利要求2所述的spring boot实例并发处理方法,其特征在于,所述对可以并发执行的类进行并发处理生成相应的实例,具体包括:
若判断获知实例池中有闲置的实例,则直接复用闲置实例;
若判断获知实例池中没有闲置的实例,则根据当前的内存信息和类的优先级创建新的实例,其中,所述配置文件中还包含若干个预先配置的类的优先级。
4.根据权利要求3所述的spring boot实例并发处理方法,其特征在于,所述根据当前的内存信息和类的优先级创建新的实例,具体包括:
若判断获知当前的内存足够用,则为每一可以并发执行的类创建新的实例;
若判断获知当前的内存不足以为每一可以并发执行的类创建新的实例,则为优先级较高的可以并发执行的类创建新的实例。
5.根据权利要求2所述的spring boot实例并发处理方法,其特征在于,所述对可以并发执行的类进行并发处理生成相应的实例之后,还包括:
若判断获知线程池中有闲置的线程,则直接复用闲置线程,包装实例执行;
若判断获知实例池中没有闲置的线程,则根据当前的内存信息和类的优先级创建新的线程,包装实例执行,其中,所述配置文件中还包含若干个预先配置的类的优先级。
6.根据权利要求5所述的spring boot实例并发处理方法,其特征在于,所述根据当前的内存信息和类的优先级创建新的线程,具体包括:
若判断获知当前的内存足够用,则为每一实例创建新的线程;
若判断获知当前的内存不足以为每一实例创建新的线程,则为优先级较高的可以并发执行的类对应的实例创建新的线程。
7.根据权利要求3所述的spring boot实例并发处理方法,其特征在于,所述对可以并发执行的类进行并发处理生成相应的实例之前,还包括:
获取spring boot当前的内存信息。
8.一种spring boot实例并发处理装置,其特征在于,包括:
接口模块,用于获取spring boot的实例并发请求信息,所述实例并发请求信息中包含待执行的类的堆栈;
配置管理模块,用于获取用户输入的对所述堆栈的栈顶的类进行的声明;所述声明包含用户对栈顶的类的并发量,且被栈顶的类所调用的类的并发量,与栈顶的类的并发量相同;
并发控制模块,用于根据用户预先配置的配置文件确定所述堆栈中可以并发执行的类;
性能管理模块,用于对可以并发执行的类进行并发处理生成相应的实例。
9.一种电子设备,包括存储器、处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1至7任一项所述spring boot实例并发处理方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序被处理器执行时,实现如权利要求1至7任一所述spring boot实例并发处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910537075.6A CN112114862B (zh) | 2019-06-20 | 2019-06-20 | spring boot实例并发处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910537075.6A CN112114862B (zh) | 2019-06-20 | 2019-06-20 | spring boot实例并发处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112114862A CN112114862A (zh) | 2020-12-22 |
CN112114862B true CN112114862B (zh) | 2023-12-22 |
Family
ID=73795904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910537075.6A Active CN112114862B (zh) | 2019-06-20 | 2019-06-20 | spring boot实例并发处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112114862B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1573688A (zh) * | 2003-06-10 | 2005-02-02 | 微软公司 | 动态运行时间环境中使用标签化类型的系统和方法 |
CN102722415A (zh) * | 2012-05-22 | 2012-10-10 | 广州晶锐信息技术有限公司 | 基于堆栈体系结构Java SoC系统的垃圾收集方法 |
CN103077064A (zh) * | 2012-12-31 | 2013-05-01 | 北京配天大富精密机械有限公司 | 一种解析并执行程序语言方法及解释装置 |
CN103262030A (zh) * | 2010-12-16 | 2013-08-21 | 英特尔公司 | 经由动态聚合操作的快速且线性化并发优先级队列 |
CN105162863A (zh) * | 2015-09-01 | 2015-12-16 | 北京皮尔布莱尼软件有限公司 | 一种图片上传装置、方法和计算设备 |
CN106330878A (zh) * | 2016-08-18 | 2017-01-11 | 乐视控股(北京)有限公司 | 管理视频流解析的方法及装置 |
CN107025074A (zh) * | 2017-04-25 | 2017-08-08 | 航天科技控股集团股份有限公司 | 一种基于记录仪平台的图片存储方法 |
CN108345499A (zh) * | 2018-02-01 | 2018-07-31 | 平安科技(深圳)有限公司 | 统一线程池处理方法、应用服务器及计算机可读存储介质 |
-
2019
- 2019-06-20 CN CN201910537075.6A patent/CN112114862B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1573688A (zh) * | 2003-06-10 | 2005-02-02 | 微软公司 | 动态运行时间环境中使用标签化类型的系统和方法 |
CN103262030A (zh) * | 2010-12-16 | 2013-08-21 | 英特尔公司 | 经由动态聚合操作的快速且线性化并发优先级队列 |
CN102722415A (zh) * | 2012-05-22 | 2012-10-10 | 广州晶锐信息技术有限公司 | 基于堆栈体系结构Java SoC系统的垃圾收集方法 |
CN103077064A (zh) * | 2012-12-31 | 2013-05-01 | 北京配天大富精密机械有限公司 | 一种解析并执行程序语言方法及解释装置 |
CN105162863A (zh) * | 2015-09-01 | 2015-12-16 | 北京皮尔布莱尼软件有限公司 | 一种图片上传装置、方法和计算设备 |
CN106330878A (zh) * | 2016-08-18 | 2017-01-11 | 乐视控股(北京)有限公司 | 管理视频流解析的方法及装置 |
CN107025074A (zh) * | 2017-04-25 | 2017-08-08 | 航天科技控股集团股份有限公司 | 一种基于记录仪平台的图片存储方法 |
CN108345499A (zh) * | 2018-02-01 | 2018-07-31 | 平安科技(深圳)有限公司 | 统一线程池处理方法、应用服务器及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112114862A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9286042B2 (en) | Control flow graph application configuration | |
EP3964948B1 (en) | Hardware acceleration method, compiler, and device | |
CN109753358B (zh) | 任务处理方法及装置 | |
CN107479981B (zh) | 一种基于异步调用实现同步调用的处理方法及装置 | |
CN111142943A (zh) | 自动控制并发方法及装置 | |
CN102420709A (zh) | 一种基于任务框架的调度任务管理方法和设备 | |
CN110659131A (zh) | 任务处理方法、电子装置、计算机设备及存储介质 | |
CN106528189A (zh) | 一种启动备份任务的方法、装置及电子设备 | |
CN112114862B (zh) | spring boot实例并发处理方法及装置 | |
CN108614697B (zh) | 后台Dex编译管控的方法及装置 | |
CN116450309A (zh) | 系统服务提供方法、装置、存储介质及电子设备 | |
CN116089040A (zh) | 业务流程的调度方法及其装置、电子设备及存储介质 | |
Dorier et al. | Supporting task-level fault-tolerance in HPC workflows by launching MPI jobs inside MPI jobs | |
CN110109747B (zh) | 基于Apache Spark的数据交换方法及系统、服务器 | |
CN115220887A (zh) | 调度信息的处理方法、任务处理系统、处理器和电子设备 | |
WO2017128589A1 (zh) | 可运行文件生成方法、art虚拟机运行方法和装置 | |
CN110968327B (zh) | 服务系统及其部署方法 | |
CN109388497B (zh) | 一种内存池的管理方法、装置、设备及可读存储介质 | |
CN113708971A (zh) | 一种Openstack云平台的部署方法及相关装置 | |
US7908375B2 (en) | Transparently externalizing plug-in computation to cluster | |
CN117076004B (zh) | 微服务打包合并方法、装置和电子设备 | |
CN106919436B (zh) | Dalvik虚拟机实现多任务的方法、装置及虚拟机 | |
CN113778458B (zh) | 数据处理器功能开发系统、方法及计算设备 | |
CN111061562B (zh) | 一种软件协同打包方法、系统、终端及存储介质 | |
US20220357994A1 (en) | Portable predictable execution of serverless functions |
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 |