专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java线程返回值示例

Java线程返回值示例

更新时间:2022-06-20 10:25:26 来源:星辉 浏览1126次

星辉小编给大家举一个如何返回线程值的示例。简单描述示例的步骤:

我们已经实现了两个Java类,RetDouble它们RetInt都实现了Callable,第一个使用作为参数 a Double,第二个使用作为参数 an Integer。它们都覆盖了call()Callable 的方法,第一个返回一个Double值,而第二个返回一个Integer.

我们使用Executors 的API方法创建一个ExecutorService。该方法返回一个线程池,该线程池重用在共享无界队列上运行的固定数量的线程。newFixedThreadPool(int nThreads)

ExecutorService对两个 Callables 使用其 API 方法,以便提交一个返回值的任务以供执行,并返回两个代表任务未决结果的 Future对象。submit(Callable task)

为了获取 Future 对象的值,我们可以使用它们的get()API 方法,在必要时等待计算完成,然后检索结果。

最后 ExecutorService 使用其shutdown()API 方法启动有序关闭,其中执行之前提交的任务,但不会接受新任务。

让我们看一下下面的代码片段:

包 com.javacodegeeks.snippets.core;
导入 java.util.concurrent.Callable;
导入 java.util.concurrent.ExecutorService;
导入 java.util.concurrent.Executors;
导入 java.util.concurrent.Future;
公共类 RetVal {
    公共静态 void main(String args[]) 抛出异常 {  
  ExecutorService 服务 = Executors.newFixedThreadPool(3);
  Future<Double> retdouble = service.submit(new RetDouble());
  Future<Integer> retInt = service.submit(new RetInt());
  System.out.println(retdouble.get());
  System.out.println(retInt.get());
  service.shutdown();    
    }
}
类 RetDouble 实现 Callable<Double> {
    RetDouble() {
    }
    @覆盖
    公共双调用(){
  返回 2.0;
    }
}
类 RetInt 实现 Callable<Integer> {
    RetInt() {
    }
    @覆盖
    公共整数调用(){
  返回 1;
    }
}

输出:

2.0
1

这是一个如何在 Java 中返回 Thread 值的示例。如果大家想了解更多相关知识,可以关注一下星辉的Java多线程编程,里面有更丰富的知识等着大家去学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>