黑马程序员技术交流社区

标题: 交通管理灯的定时器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