java.util.concurrent ------Executors

Executors 创建线程池方法:

  newFixedThreadPool() 方法,该方法返回一个固定数量的线程池,该方法的线程数始终不变,当有一个任务提交时,若线程池中空闲,则立即执行,若没有,则会被暂缓在一个任务队列中等待有空闲的线程去执行。

newSingleThreadExecutor() 方法,创建一个线程的线程池,若空闲则执行,若没有空闲线程,则暂缓在任务队列中

newCachedThreadPool() 方法,返回一个可以根据实际情况调整线程个数的线程池,不限制最大线程数量,若用空闲的线程则执行任务,若无任务则不创建线程,并且每一个空闲线程会在60秒后自动回收。

newScheduledThreadPool() 方法,该方法返回一个ScheduledExecutorService 对象,但是该线程池可以指定线程的数量。

2. 如果Executors 工厂类无法满足我们的需求,可以自己创建自定义的线程池,其实Executors 工厂里面创建的线程方法,内部都实现了ThreadPoolExecutor 这个类,这个类可以自定义线程,构造方法如下:

  public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAlive Time,TimeUnit unit,BlockingQueue<Runnable> workQueue ,ThreadFactory threadFactory,RejectedExecutionHandler handler ){........}

猜你喜欢

转载自my.oschina.net/kuchawyz/blog/1813140