并发编程:任务执行
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()
以上是关于并发编程:任务执行的主要内容,如果未能解决你的问题,请参考以下文章
JUC并发编程 共享模式之工具 ThreadPoolExecutor -- 任务调度线程池 定时任务 / 延时执行(ScheduledThreadPoolExecutor 延时执行 / 定时执行)(代