Executors工厂类用来产生连接池,该工厂类里包含几个静态工厂方法创建连接池:
newCachedThreadPool();创建一个具有缓存功能的线程池,系统根据需要创建线程,
这些线程将会被缓存在线程池中。
newFixedThreadPool(int n);创建一个可重用的具有固定线程数的线程池。
newSingleThreadExecutor();创建一个只有单线程的线程池,相当于
newFixedThreadPool(1);
newScheduledThreadPool(int n);创建具有指定线程数的线程池,它可以
在指定延迟后执行线程任务,。
newSingleThreadScheduledExecutor();创建一个只有一条线程的线程池,
它可以在指定延迟后执行线程任务。
上面五个方法中前三个方法返回一个ExecutorService对象,该对象代表一个线程池,
它可以执行Runnable对象或Callable对象所代表的线程,而后两个方法返回一个
ScheduledExecutorService线程池,它是ExecutorService的子类
它可以在指定延迟后执行线程任务。
ExecutorService里面提供了如下三个方法:
submit(Runnable t):将一个Runnable对象提交给指定的线程池。线程池将在有空闲线程时执行
Runnable对象代表的任务。
submit(Runnable t,T r);将一个Runnable对象交给指定的线程池。
线程池将在有空闲线程时执行Runnable对象所代表的任务,r显式
指定线程执行结束后的返回值。
submit(Callable t);将一个Callable对象交给指定的线程池。线程池将在有空闲线程时执行Callable对象所代表的任务
ScheduledExecutorService代表可在指定延迟或周期行执行
线程任务的线程池。它提供几个方法如下:
schedule(Callable c,long delay,TimeUnit u);
指定c任务将在delay延迟后执行。u是时间的单位。
schedule(Runnable r,long delay,TimeUnit u);
指定r任务将在delay延迟后执行。
scheduleAtFixedRate(Runnable r,long initialDelay ,long period,TimeUnit u);
r任务将在delay延迟后执行,而且以设定频率重复执行。也就是说。在initialDelay后
开始执行,依次在initialDelay+period、initialDelay+2*period...处重复执行。
scheduleWithFixedDelay(Runnable r,long initialDelay ,long period,TimeUnit u);
创建并执行一个在给定初始延迟后首次启用的定期操作。如果任务的任一次执行时
遇到异常,就会取消后续的执行。否则只能通过程序显式取消或终止该任务。
其他的你可以看看API学习。
|
|