实现线呈程序的第二种方式–Callable接口(这个类的实现方法需要重写他的call方法)
好处:call方法具有返回值
即利用Future<?> 中的get方法,即可获得Callable接口实现类中的call方法的返回值
package cn.itcast.demo06;
import java.util.concurrent.Callable;
public class ThreadPoolCallable implements Callable<String> {
public String call() {
return "线程任务";
}
}
package cn.itcast.demo06;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
/*
* 实现线程程序的第三个方式。Callable接口方式
*/
public class ThreadPoolDemo1 {
public static void main(String[] args) throws Exception, ExecutionException {
//第一步 利用线程池工厂创建出存储两个线程的线程池
ExecutorService es = Executors.newFixedThreadPool(2);
//第二步 提交线程任务
Future<String> f = es.submit(new ThreadPoolCallable());
System.out.println(f.get());
}
}