对于经常创建,使用量大的资源,如并发情况下的线程,对性能影响很大。为解决此问题,可提前创建多个线程,放入线程池中,使用时直接获取,使用之后放回池中。
java jdk提供了ExecutorService和Executors
ExecutorService:
void execute(Runnable command):执行命令,没有返回值。(Runnable)
<T>Future<T>submit(Callable<T> task):执行任务,有返回值。(Callable)
void shutdown():关闭连接池
Executors: 线程池的工具类,用于创建并返回不同类型的线程池
public class Pool implements Runnable{ @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { // 创建线程池,大小为6 ExecutorService executorService = Executors.newFixedThreadPool(6); // 执行 executorService.execute(new Pool()); executorService.execute(new Pool()); executorService.execute(new Pool()); // 关闭 executorService.shutdown(); } }