File size: 1,308 Bytes
0284885 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package Thread_implements_package;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class Thread_demo3 {
public static void main(String[] args) throws ExecutionException, InterruptedException {
/*
* 多线程的第三种实现方式:
* 特点:可以获取到多线程运行的结果
*
* 1、创建一个类MyCallable实现Callable接口
* 2、重写call(是有返回值的,表示多线程运行的结果)
*
* 3、创建MyCallable的对象(表示多线程要执行的任务)
* 4、创建FutureTask的对象(用来管理多线程运行的结果)
* 5、创建Thread类的对象,并启动(表示线程)
*/
//1、创建MyCallable的对象(表示多线程要执行的任务)
MyCallable mc = new MyCallable();
//2、创建FutureTask的对象(用来管理多线程运行的结果)
FutureTask<Integer> ft = new FutureTask<>(mc);
//3、创建线程对象
Thread t1 = new Thread(ft);
//启动线程
t1.start();
//获取多线程运行的结果
Integer result = ft.get();
System.out.println(result);
}
}
|