/** * 线程任务 */ public class TaskService implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName()+"TaskService start..."); } } ExecutorService executorPool = Executors.newFixedThreadPool(2); //创建一个固定大小的线程池 executorPool.execute(new TaskService()); executorPool.execute(new TaskService()); executorPool.execute(new TaskService()); executorPool.execute(new TaskService()); executorPool.execute(new TaskService());
创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。调用 execute 将重用以前构造的线程(如果线程可用)。
如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。因此,长时间保持空闲的线程池不会使用任何资源。注意,可以使用 ThreadPoolExecutor
构造方法创建具有类似属性但细节不同(例如超时参数)的线程池。