Callable接口类似于Runnable,但 Runnable不返回结果,也不能抛出被检查的异常。
一、JDK帮助手册
打开JDK帮助手册,搜索Callable
帮助手册告诉我们,Executors类包含实现方法,我们再搜索Executors
JDK并未给出创建线程的示例,需要另外寻找资料列出详细创建过程。
二、创建过程与代码示例
1、实现Callable接口,需要返回值类型;
2、重写call方法,需要抛出异常;
3、创建目标对象实例 t;
4、创建执行服务:ExecutorService ser = Executor.newFixedThreadPool(1);
5、提交执行:Future result = ser.submit(t);
6、获取结果:boolean r = result.get();
7、关闭服务:ser.shutdownNow();
实现Callable接口创建线程:
public class ThreadDemo3 implements Callable<Boolean> {
@Override
public Boolean call() throws Exception {
for(int i = 0; i < 10; i++) {
// 休眠100毫秒,以免CPU执行太快,看不出实验结果
Thread.