1、和runable接口区别:
有返回值,run方法能抛出异常,但是容易造成main线程阻塞
public class Treaddemo2 {
public static void main(String[] args) throws ExecutionException, InterruptedException {
System.out.println("main线程开始");
FutureTask futureTask =new FutureTask(new ThreaTest());
Thread thread =new Thread(futureTask);
thread.start();
Object o = futureTask.get();
System.out.println(thread.getName()+"返回值:"+o);
System.out.println("main线程结束");
}
}
class ThreaTest implements Callable{
public Object call() throws Exception {
System.out.println("Call()方法开始!");
System.out.println("------------------");
System.out.println("Call()方法结束!");
return 1+2;
}
}