[JAVA]多线程之实现Callable接口

通过继承Callable方式实现的多线程可以获取线程执行后的返回值

示例代码如下:

public class Counter implements Callable {

    @Override
    public Integer call() throws Exception {
        System.out.println("\tstart");
        int sum = 0;
        for (int i = 0; i < 100; i++) {
            sum += i;
        }
        Thread.sleep(4000);
        System.out.println("\tend");
        return sum;
    }
}
public class MultiThreadTest {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        Counter counter = new Counter();
        FutureTask integerFutureTask = new FutureTask<>(counter);
        new Thread(integerFutureTask).start();

        // 该方法会阻塞调用线程
        Integer integer = integerFutureTask.get();
        System.out.println(integer);
    }
}

 

你可能感兴趣的:([JAVA]多线程之实现Callable接口)