【java】java 多线程 异步计算 FutureTask 源码详解

在这里插入图片描述

1.概述

扩展阅读:【java】线程 ExecutorService 原理 源码 解释

1.1 问题

  1. FutureTask用来解决什么问题的?
  2. 为什么会出现?
  3. FutureTask类结构关系怎么样的?
  4. FutureTask的线程安全是由什么保证的?
  5. FutureTask结果返回机制?
  6. FutureTask内部运行状态的转变?
  7. FutureTask通常会怎么用?

举例说明。

1.2 FutureTask简介

FutureTask 为 Future 提供了基础实现,如获取任务执行结果(get)和取消任务(cancel)等。如果任务尚未完成,获取任务执行结果时将会阻塞。一旦执行结束,任务就不能被重启或取消(除非使用runAndReset执行计算)。FutureTask 常用来封装 Callable 和 Runnable,也可以作为一个任务提交到线程池中执行。除了作为一个独立的类之外,此类也提供了一些功能性函数供我们创建自定义 task 类使用。FutureTask 的线程安全由CAS来保证。<

猜你喜欢

转载自blog.csdn.net/qq_21383435/article/details/123592137
今日推荐