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);
}
}
});
|