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

示例代码如下:

public class Counter implements Callable<Integer> {

    @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<Integer> integerFutureTask = new FutureTask<>(counter);
        new Thread(integerFutureTask).start();

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

 

相关文章:

  • 2021-10-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-11
  • 2022-01-09
  • 2021-07-26
  • 2021-12-27
猜你喜欢
  • 2021-10-28
  • 2019-01-23
  • 2021-08-01
  • 2021-08-13
相关资源
相似解决方案