SpringBoot 异步调用方法并接收返回值

项目中肯定会遇到异步调用其他方法的场景,比如有个计算过程,需要计算很多个指标的值,但是每个指标计算的效率快慢不同,如果采用同步执行的方式,运行这一个过程的时间是计算所有指标的时间之和。比如:

方法A:计算指标x,指标y,指标z的值,其中计算指标x需要1s,计算指标y需要2s,指标z需要3s。最终执行完方法A就是5s。

现在用异步的方式优化一下

方法A异步调用方法B,方法C,方法D,方法B,方法C,方法D分别计算指标x,指标y,指标z的值,那么最终执行完方法A的时间则是3s。

原文地址:https://www.cnblogs.com/DDgougou/p/11964425.html

时间: 2024-08-02 02:24:34

SpringBoot 异步调用方法并接收返回值的相关文章

第三次博客作业package com.fry; //导入java.util.Arrays; import java.util.Arrays; public class Demo1 { public static void main(String[]args){ //创建对象,对象名为hello Demo1 hello =new Demo1(); //调用方法并将返回值保存在变量中

1.  某网站管理系统,用户注册时,电话号码为可选输入项,输入格式为:区号-电话号码—分机号,中间用“-”隔开.以下为jsp页面上的设计,且并未对输入做任何控制. 假设系统现在需要取出中间的电话号码部分,代码如下: /** * * 该方法根据用户输入取出中间的电话号码部分 * @param strPhoneNum 电话号码,如:“0591-83279988—002” * @return 返回号码部分,如:“83279988” */ public String getPhoneNumber(Str

Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权限修饰符,默认访问, 类,方法,成员变量 private 权限修饰符,私有访问, 方法,成员变量 static 静态修饰符 方法,成员变量 final 最终修饰符 类,方法,成员变量,局部变量 abstract 抽象修饰符 类 ,方法 我们编写程序时,权限修饰符一般放于所有修饰符之前,不同的权限修饰

jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法

jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法 在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如: function ManageCommentText(text) { var result = text; $.ajax({ data: "get", url: &qu

RhinoMock中有参数方法和无返回值方法的使用

无返回值方法,RhinoMock的例子是这么做的: demo.VoidThreeArgs(0, "", 0f); LastCall.On(demo).Callback<int, string, float>(ThreeArgsAreSame); mocks.Replay(demo); 无参数方法: INameSource nameSource = (INameSource)mocks.StrictMock(typeof(INameSource)); Expect.Call(

单元测试时候使用[ClassInitialize]会该方法必须是静态的公共方法,不返回值并且应采用一个TestContext类型的参数报错的解决办法

using Microsoft.VisualStudio.TestTools.UnitTesting; 如果该DLL应用的是 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 版本为9.0.0.0 的话,则使用[ClassInitialize]会该方法必须是静态的公共方法,不返回值并且

phoenixframe平台连接socket服务器,并接收返回值的示例

package org.phoenix.cases.webservice; import java.util.LinkedList; import org.phoenix.action.WebElementActionProxy; import org.phoenix.model.CaseLogBean; import org.phoenix.model.UnitLogBean; import org.phoenix.utils.NetTelnet; /** * phoenixframe平台连接

异步调用方法

delegate 有一个begininvoke 方法, 会开一个新线程去处理. 当需要处理UI 控件时,需要判断,caller是不是和该控件在一个线程上,否则就要用delegate回到ui 线程. 并且调用控件的Invoke方法. 例如 private delegate void SetTextHandler(string msg); if (txtOutput.InvokeRequired)            {                SetTextHandler handler

创建一个接口Shape,其中有抽象方法area,类Circle 、Rectangle实现area方法计算其面积并返回。又有Star实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型方法isStar;在main方法里创建一个Vector,根据随机数的不同向其中加入Shape的不同子类对象(如是1,生成Circle对象;如是2,生成Rectangle对象;如是3,生成S

题目补充: 创建一个接口Shape,其中有抽象方法area,类Circle .Rectangle实现area方法计算其面积并返回. 又有Star实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型方法isStar: 在main方法里创建一个Vector,根据随机数的不同向其中加入Shape的不同子类对象(如是1,生成Circle对象: 如是2,生成Rectangle对象:如是3,生成Star对象).然后将Vector中元素依次取出,判断其是否为Star类.如是返回其

iOS实现调用动态方法名有返回值的方法

需求: 有10个类, 每个类里头都有n个方法(前提是方法名有规律可循,比如 setA0,setA1-)  如果挨个去init类, 然后挨个调用方法,这样你一天就不用干别的了 简单的解决方法可以参考这个: iPhone开发中,动态调用类和方法 虽然说performSelector有返回值,但是在ARC下会有警告,因为方法名是动态的,系统并不知道返回值是什么样的类型.解决方法可以见这篇文章: "performSelector may cause a leak because its selector