新开线程在方法已经return数据后继续执行程序

有时候我们会遇到这样的场景
客户端请求一个接口,返回需要的数据,然后根据这些数据做相应的操作,然后这个接口还要等待对应的操作已经执行,再做出回应。

举个栗子。app端请求后台接口A,A要处理app传过来的数据,return一个结果码给app,这个时候A还没有执行完,A还要等待app根据结果码做出处理,比如打开某个开关,A要一直监听这个开关到底打开了没有,如果打开了,就发送通知给web端,通知web端做相应的处理。

在java中,单线程情况下执行return后整个方法就结束了,所以要完成上面的需求,就需要我们在return数据之前新开一个线程去监听那个开关。

大致的代码如下,我们用java8的方式来创建这个线程

public Result A(){
	//处理数据的逻辑
	………………
	Thread thread = new Thread(() -> this.wait(json));//wait方法是监听开关的方法
	thread.start();
	//返回给接口调用者
	return Result.success(appJson);
}
public void wait(){
	int second = 120;//等待120秒
    while (second > 0) {
	    Thread.sleep(1000);
	    second--;
		//等待开关打开 然后做对应的操作
		if(open){
			……………………
			break;
		}
	}
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值