使用Callable
接口
Thread
可以通过其构造函数传入Runnable
接口创建线程,那么这和Callable
接口有什么关系呢
FutureTask
类实现了Runnable
接口,那么我们是不是可以通过Thread
其构造函数传入FutureTask
FutureTask
的构造函数传入了Callable
接口
通过以上关系图,可以使用Callable
接口来创建线程,注意到call
方法有返回值、抛出异常
package com.zbiti.juc;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class CallableDemo {
public static void main(String[] args) throws ExecutionException, InterruptedException {
FutureTask<Integer> futureTask = new FutureTask(new MyThread());
new Thread(futureTask,"A").start();
Integer count = futureTask.get();
System.out.println(count);
}
}
class MyThread implements Callable{
@Override
public Integer call() throws Exception {
System.out.println("*********come in call method");
return 1024;
}
}
本文由博客一文多发平台 OpenWrite 发布!