本文主要是介绍Callable使用示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
package com.expgiga.JUC;import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask;/** * 一、创建执行线程的方式三:实现Callable接口。 * 相较于实现Runnable接口的方式,方法可以有返回值,并且可以抛出异常。 * * 二、执行Callable方式,需要FutureTasksh实现类的支持,用于接收运算结果。FutureTask是Future接口的实现类。 */ public class TestCallable {public static void main(String[] args) {ThreadDemo1 threadDemo1 = new ThreadDemo1();//1.执行Callable方式,需要FutureTask实现类的支持,用于接受运算结果。 FutureTask<Integer> result = new FutureTask<Integer>(threadDemo1);new Thread(result).start();//2.接收线程运算后的结果 try {Integer sum = result.get();//FutureTask也可用闭锁的操作 System.out.println(sum);} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}} }class ThreadDemo1 implements Callable<Integer> {@Override public Integer call() throws Exception {int sum = 0;for (int i = 0; i <= 100; i++) {sum += 1;}return sum;} }/* class ThreadDemo implements Runnable { @Override public void run() { } }*/
这篇关于Callable使用示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!