更新时间:2022-06-20 10:25:26 来源:极悦 浏览1305次
极悦小编给大家举一个如何返回线程值的示例。简单描述示例的步骤:
我们已经实现了两个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多线程编程,里面有更丰富的知识等着大家去学习,希望对大家能够有所帮助。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习