ExecutorService等所有线程执行完毕,并设置超时时间

1、工作中遇到的业务处理需要:

例:

生产问题:生产上一个常用的会话接口,此接口内集成了5个外部接口能力(python的,Java的,其中每个接口基本耗时2~3秒),原有会话接口里是依次去调用的,

                  这就导致用户体验很差,因为2乘5也就是10秒,也就是说会话接口耗时10秒起步;

解决方案:将原来的依次调用,改为多线程异步调用,等所有线程的调用都处理结束后,再去统一处理封装数据,因为多线程异步的原因,一个接口调用耗时2~3秒,

                  则改造后会话接口耗时2秒起步。

2、需要拥有的技能:

1、知道常用的线程池;

2、知道如何等待线程池所有线程执行结束

3、知道如何设置线程超时时间,避免生产运行中线程僵死导致资源占用,造成死锁

3、以下讲解上述三点:

使用ExecutorService线程池演示;

1、使用:Future.get()  等待线程执行结束,设置超时时间:future.get(4, TimeUnit.SECONDS)

Future简单来说就是对具体的Runnable和Callable任务执行结果进行任务取消、任

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值