Callable实现线程

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class Callabal {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
//        创建一个未来任务对象
        FutureTask ft = new FutureTask(new Callable() {
            @Override
            public Object call() throws Exception {
//                call()相当于run(),只不过这个有返回值

                System.out.println("开始");

                Thread.sleep(1000*10);

                System.out.println("结束");
                int a = 100;
                int b = 200;
                return a+b;//自动装箱(300编程Integer)
            }
        });

//        创建线程对象
        Thread t = new Thread(ft);
        t.start();
        Object obj = ft.get();//这行会导致main执行受阻(当前线程阻塞)
//        这种方式的线程,能够获取返回结果,但是效率很低
        System.out.println("Hello Word!");
    }
}

结果:
Callable实现线程

上一篇:Callable与FutureTask


下一篇:6.Java多线程