6任务执行

2018-10-31  本文已影响0人  WFitz

任务的优点

通过把应用程序的工作分解到多个任务中,可以简化应用程序的组织结构,提供一种自然的事务边界来优化错误恢复过程, 以及提供一种自然的并行工作结构来提升并发性!

任务独立性

在理想情况下,各个任务之间是相互独立的,任务不依赖于其他任务的状态,结果,或边界效应. 独立性有助于实现任务并发, 任务调度, 任务负载等.

服务器应用程序的要求

应用或任务设计的关键

无限制创建线程的不足

任务和线程的关系

任务是一组逻辑工作单元
线程是使任务异步执行的机制

Executor框架(线程池类库)

PS:通过将任务的提交操作和任务执行策略分离开来,有助于在部署阶段选择与可用硬件资源最匹配的执行策略

任务执行策略

ExecutorService生命周期

  1. 运行, ExecutorService创建时处于运行状态
  2. 关闭, 调用shutdown或shutdownNow后处于关闭装填
  3. 已终止, 调用shutdown或shutdownNow并且所有任务都结束后处于终止状态
    isTermination返回ture,或者awaitTermination方法正常返回则表示ExecutorService处于终止状态

Executor执行的任务的四个阶段

  1. 创建
  2. 提交
  3. 开始
  4. 完成

Runnable VS Callable

Future

Future表示一个任务的生命周期, 提供了相应方法判断任务是否已经完成或取消,以及获取任务的结果和取消任务等.
Futrue规范中包含的隐含意义是,任务的声明周期只能前进,不能后退,就想ExecutorService的声明周期一样.当某个任务完成后,它就永远停留在"完成"状态上

上一篇下一篇

猜你喜欢

热点阅读