黑马程序员技术交流社区
标题:
交通管理灯的定时器ExecutorService 不是很清楚 求大神讲解
[打印本页]
作者:
还记得梦想吗
时间:
2014-2-18 10:21
标题:
交通管理灯的定时器ExecutorService 不是很清楚 求大神讲解
ExecutorService pool = Executors.newSingleThreadExecutor();
ExecutorService是一个接口。那么pool变量是什么。。
List list = new ArrayList(); 这里面list可以直接调用List接口的方法。。但是这里不是很清楚。。。
java.util.concurrent.Executors
public class Executorsextends Object此包中所定义的 Executor、ExecutorService、ScheduledExecutorService、ThreadFactory 和 Callable 类的工厂和实用方法。此类支持以下各种方法:
创建并返回设置有常用配置字符串的 ExecutorService 的方法。
创建并返回设置有常用配置字符串的 ScheduledExecutorService 的方法。
创建并返回“包装的”ExecutorService 方法,它通过使特定于实现的方法不可访问来禁用重新配置。
创建并返回 ThreadFactory 的方法,它可将新创建的线程设置为已知的状态。
创建并返回非闭包形式的 Callable 的方法,这样可将其用于需要 Callable 的执行方法中。
Executors是一个类。 他的方法newSingleThreadExecutor()为甚么,返回类型是一个接口类型。。????
public static ExecutorService newSingleThreadExecutor()创建一个使用单个 worker 线程的Executor,以无界队列方式来运行该线程。(注意,如果因为在关闭前的执行期间出现失败而终止了此单个线程,那么如果需要,一个新线程将代替它执行后续的任务)。可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的。与其他等效的 newFixedThreadPool(1) 不同,可保证无需重新配置此方法所返回的执行程序即可使用其他的线程。 返回:新
创建的单线程 Executor这个是Pool 直接调用Executor的 execute()方法。内部实现Runnable()接口并使用内部类吗
pool.execute(new Runnable(){
//车上到路上不断产生车
public void run() {
for(int i=1;i<1000;i++){
try { //随机值
Thread.sleep((new Random().nextInt(10) + 1) * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
vechicles.add(Road.this.name+"_"+i);
}
}
});
作者:
e.c
时间:
2014-2-18 17:42
本帖最后由 e.c 于 2014-2-18 17:45 编辑
多态,面向接口编程可以让程序非常灵活。
ExecutorService pool表示pool指向的对象是实现了ExecutorService接口的对象或其子类对象。
Executors.newSingleThreadExecutor()函数声明返回值类型是ExecutorService,其实它返回的是实现了ExecutorService接口类的子类对象以,
把子类对象当作父类来。(多态)
作者:
asvsass
时间:
2014-2-18 17:48
返回的不是接口吧 返回的是这个接口的实现类的对象
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2