一、应用场景
在实际工作中经常会遇到某些很复杂的逻辑,在业务和代码层面对返回速度的优化已经达到瓶颈,但时现在整个接口的返回速度还是不太令人满意,这个时候就可以考虑将部分没有强关联的业务改造成多线程,这样多个业务可以在多线程里面并发去处理,最后拿到返回值后再继续往下走,可以一定程度上加快接口的返回速度
二、代码模拟
1、首先我们模拟一下正常的场景
- 正常的场景,比如下面的创建user就算是业务逻辑,每个方法都要耗时1秒钟
private User createUser2(int i) throws InterruptedException { Thread.sleep(3000); User user = new User(); user.setAge(i); return user; }
- 创建10个user
public void create() throws InterruptedException { System.out.println("开始"); long start = System.currentTimeMillis(); for (int i = 0; i < 10; i++) { createUser(i); } System.out.println("结束,耗时:" + (System.currentTimeMillis()-start)); }
- 日志打印,基本上就是10秒,这个没啥好说的
开始
结束,耗时:10004