Future异步执行 - 掘金
Future异步执行 - 掘金 pipi蛋 2020年05月26日 阅读 43 Future异步执行 前言 随着业务的发展,系统的功能也越来越多,这时候很多业务操作就需要异步执行,提高效率。大多时候,我们都可以采用线程池来实现异步执行的需求,但是,有时候主流程需要等待其他任务执行完以后才能继续执行,又或者是主流程需要知道其他任务执行的结果,这时候,就需要采用线程的合并了。 在讲线程合并之前,我们先来看看平时使用Thread是怎么实现主线程等待其他线程的。 join合并线程 当一个线程需要等待其他线程执行完再继续执行的时候,我们可以使用join或者是CountDownLatch,这里只说join,CountDownLatch前面的文章已经说过,这里不再赘述。 当线程A调用线程B的join方法时,线程A会阻塞,直到线程B执行完以后才继续执行。 下面举个简单例子:下班回家,煮饭、做菜和烧水这些日常操作是怎么用多线程来实现的。下面是具体流程: 主线程需要等待煮饭线程和烧水线程执行完才能继续下面的吃饭喝水操作。下面我们看看代码是怎么实现的 java public class JoinDemo { static class RiceThread extends Thread { @Override public void run () { try { System.out.println(Thread.currentThread().getName() + "开始煮饭" ); Thread.sleep( 10 * 1000 ); System.out.println(Thread.currentThread().getName() + "饭煮好了" ); } catch (InterruptedException e) { e.printStackTrace(); } } } ...