Callable
callable和Runnable的区别是callable可以有返回值,也可以抛出异常的特性,
- Callable实现多线程: 将实现Callable接口的实现类丢尽FutureTask 中,然后再将futureTask放进Thread类中,用到了适配者模式,面向接口的编程(参数都是接口,因为一个类可以实现多个接口,因此实现了其接口的类都有作为参数)。
注意:多个线程抢一个FutureTask,只计算一次call里的内容,想要计算多次需要起多个FutureTask。
public class CallableDemo {
public static void main(String[] args) throws ExecutionException, InterruptedException {
FutureTask <Integer> futureTask = new FutureTask(new MyThread());
new Thread(futureTask,"AA").start();
System.out.println("主线程....");