获取子线程返回结果(Future的使用) Future
程序员文章站
2022-04-03 14:01:10
...
当我们在主线程中起一个线程去处理任务,通常这个处理过程是异步的,主线程直接响应结果。
但如果这个过程是同步的,即主线程等待子线程的响应后,再去响应,应该怎么做?
执行任务的类,类似实现Runnable。
要设置一个泛型,即任务的返回结果
主线程
但如果这个过程是同步的,即主线程等待子线程的响应后,再去响应,应该怎么做?
执行任务的类,类似实现Runnable。
要设置一个泛型,即任务的返回结果
public class MyCallable implements Callable<Integer> { //返回一个随机数 @Override public Integer call() throws Exception { int result=new Random().nextInt(20); System.out.println(Thread.currentThread().getName()+"计算中..."); //模拟耗时 Thread.sleep(2000); return result; } }
主线程
public class Main { public static void main(String[] args) { //设置一个future返回结果 FutureTask<Integer> future=new FutureTask<>(new MyCallable()); //启动线程开始执行任务 new Thread(future).start(); System.out.println("before future get..."); try { //如果任务没有完成 主线程会阻塞在这里 直到有返回结果 System.out.println(future.get()); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } System.out.println("after future..."); } }
上一篇: 在linux里配置域名解析
推荐阅读
-
python获取多线程及子线程的返回值
-
python使用threading获取线程函数返回值的实现方法
-
python获取多线程及子线程的返回值
-
python使用threading获取线程函数返回值的实现方法
-
Java多线程教程之如何利用Future实现携带结果的任务
-
JDK1.5 获取线程执行结果 Callable Future
-
Java如何使用future及时获取多线程运行结果的实例分析
-
获取子线程返回结果(Future的使用) Future
-
Java如何使用future及时获取多线程运行结果的实例分析
-
安卓/android一个倒计时时钟,创建子线实现计时功能,使用异步消息机制将计时结果显示在界面上,使用Handle的sendMessage传送给子线程,然后在handlemessage实现