并发编程:任务执行

Posted 感遇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并发编程:任务执行相关的知识,希望对你有一定的参考价值。

1、每当看到下面这种代码 new Thread(runnable).start() 时,请考虑用Executor

2、Executor

  1)创建方式:Executors.new..

  2)通过使用Executor,可以实现各种调优、管理、监视、记录日志、错误报告

  3)Executor有4个生命周期:创建、提交、开始和完成

  4)ExecutorService: extends Executor,有三种状态:运行、关闭、终止

  5)支持限时的invokeAll,将多个任务提到ExecutorService并获得结果

3、Timer: timer.schedule(runnable, timout)

  1)Timer在执行所有定时任务时只会创建一个线程

  2)Timer线程并不捕获异常,因此当TimerTask抛出未检查的异常时将终止定时线程

4、Callable与Future

  1)Runnable与Callable描述的都是抽象的计算任务

  2)Future表示一个任务的生命周期,

    提供 cancel、isCancelled、isDone、get/get(timeout,timeunit)

Callable<V> task = new Callable<V>() {
  public V call() {
    return V;
  }
};    


5、CompletionService

CompletionService<V> completionService = new ExecutorCompletionService<V>(executor);
completionService.submit(callable)
completionService.take()

以上是关于并发编程:任务执行的主要内容,如果未能解决你的问题,请参考以下文章

并发编程:任务执行

并发编程概述

并发编程概述

[Think In Java]基础拾遗4 - 并发

并发编程之——多进程

JUC并发编程 共享模式之工具 ThreadPoolExecutor -- 任务调度线程池 定时任务 / 延时执行(ScheduledThreadPoolExecutor 延时执行 / 定时执行)(代