上一篇讲了Executor接口的设计,目的是将任务的执行和任务的提交解耦,可以隐藏任务的执行策略。这篇说说ExecutorService接口。它扩展了Executor接口,对Executor的生命周期进行管理,并进行了进一步的扩展。
Executor负责执行任务。它的生命周期有3个:运行,关闭和已终止。在运行的任何时刻,有些 任务可能已经完成,有些可能正在运行,有些可能正在队列中等待执行...
分类:
编程语言 时间:
2015-06-27 10:08:27
阅读次数:
154
Java里面线程池顶级接口是Executor,但严格意义上讲Executor并不是一个线程池,而是一个线程执行工具,真正的线程池接口是ExecutorService.关系类图如下: 首先Executor的execute方法只是执行一个Runnable任务而已,当然从某种角度上讲最后的实现类...
分类:
其他好文 时间:
2015-06-26 21:08:10
阅读次数:
157
1 package org.zln.thread; 2 3 import java.util.Date; 4 import java.util.concurrent.ExecutorService; 5 import java.util.concurrent.Executors; 6 7 /*...
分类:
编程语言 时间:
2015-06-25 00:03:55
阅读次数:
185
一?线程池 2.1?线程池相关类结构 Executor ? ? ??ExecutorService ? ? ? ? ? ??AbstractExecutorService ? ? ? ? ? ? ? ? ? ?ThreadPoolExecutor 2.2?各个类介绍 2.2.1?接口Executor??...
分类:
编程语言 时间:
2015-06-19 09:02:53
阅读次数:
165
今天在项目开发中需要用到对执行方法加上时间控制,如果方法执行过长则跳出执行,废话不说,直接上代码,用的是线程池配合Callable和Future方式对执行方法的超时阻断。希望各位牛人指正
//启用线程池
final ExecutorService exec = Executors.newFixedThreadPool(1);
Callable> ...
分类:
编程语言 时间:
2015-06-09 17:36:50
阅读次数:
146
---恢复内容开始---ThreadPoolExecutor继承自AbstractExecutorService。AbstractExecutorService实现了 ExecutorService接口。首先是ThreadPoolExecutor的构造方法:public ThreadPoolExec...
分类:
编程语言 时间:
2015-06-07 06:13:55
阅读次数:
136
先看一个Executor接口,该接口只有一个方法:voidexecute(Runnablecommand),用于在未来某个时刻提交一个command,这个command可以被提交到一个新的线程,或者一个线程池,或者在调用线程中。ExecutorService接口继承了Executor接口。主要是增加...
分类:
其他好文 时间:
2015-06-06 22:08:11
阅读次数:
110
Executors包含一系列静态方法,可以用于构建线程池。返回实现了 ExecutorService 接口的对象:newCachedThreadPoolnewFixedThreadPool(int threads)newSingleThreadPool返回实现了ScheduledExecutorSe...
分类:
编程语言 时间:
2015-06-06 21:59:10
阅读次数:
111
一、前言1.5后引入的Executor框架的最大优点是把任务的提交和执行解耦。要执行任务的人只需把Task描述清楚,然后提交即可。这个Task是怎么被执行的,被谁执行的,什么时候执行的,提交的人就不用关心了。具体点讲,提交一个Callable对象给ExecutorService(如最常用的线程池Th...
分类:
编程语言 时间:
2015-06-05 12:07:27
阅读次数:
118
上一篇文章中通过引入的一个例子介绍了在Executor框架下,提交一个任务的过程,这个过程就像我们老大的老大要找个老大来执行一个任务那样简单。并通过剖析ExecutorService的一种经典实现ThreadPoolExecutor来分析接收任务的主要逻辑,发现ThreadPoolExecutor的...
分类:
编程语言 时间:
2015-06-05 11:38:22
阅读次数:
127