java.util.concurrent.ExecutorService与Executors例子的
简单剖析
对于多线程有了一点了解之后,那么来看看http://www.doczj.com/doc/326f5ae58e9951e79b8927aa.htmlng.concurrent包下面的一些东西。在此之前,我们运行一个线程都是显式调用了Thread的start()方法。我们用concurrent下面的类来实现一下线程的运行,而且这将成为以后常用的方法或者实现思路。
看一个简单的例子:
Java代码
public class CacheThreadPool {
public static void main(String[] args) {
ExecutorService exec=Executors.newCachedThreadPool();
for(int i=0;i<5;i++)
exec.execute(new LiftOff());
exec.shutdown();//并不是终止线程的运行,而是禁止在这个Executor中添加新的任务
}
}
这个例子其实很容易看懂,ExecutorService中有一个execute方法,这个方法的参数是Runnable类型。也就是说,将一个实现了Runnable类型的类的实例作为参数传入execute方法并执行,那么线程就相应的执行了。
一、ExecutorService
先看看ExecutorService,这是一个接口,简单的列一下这个接口:
Java代码
public interface ExecutorService extends Executor {
void shutdown();
ListshutdownNow();
boolean isShutdown();
boolean isTerminated();