实现callable接口创建线程

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;
    }

}

你可能感兴趣的:(多线程,java)