Main.java 1.1 KB

1234567891011121314151617181920212223242526272829
  1. package J20250730.demo03_callable;
  2. import java.util.concurrent.ExecutionException;
  3. import java.util.concurrent.Future;
  4. import java.util.concurrent.FutureTask;
  5. /**
  6. * @author WanJl
  7. * @version 1.0
  8. * @title Main
  9. * @description
  10. * @create 2025/7/30
  11. */
  12. public class Main {
  13. public static void main(String[] args) throws ExecutionException, InterruptedException {
  14. //3、创建实现类的对象
  15. Computer c=new Computer();
  16. //4、创建FutureTask对象,把Callable的实现类的对象作为FutureTask类的构造方法的参数
  17. FutureTask<Integer> ft=new FutureTask(c); // 父类的引用执行子类的对象
  18. //5、创建Thread类的对象,把FutureTask对象作为Thread类的构造方法的参数
  19. Thread t1=new Thread(ft,"线程1");
  20. //6、调用Thread对象的start方法,启动线程
  21. t1.start();
  22. //7、再调用Future接口的get方法(实际上就是FutureTask对象的get方法),获取线程结束后的计算结果。
  23. Integer sum = ft.get();
  24. System.out.println(sum);
  25. }
  26. }