八.线程池
对于经常创建,使用量大的资源,如并发情况下的线程,对性能影响很大。为解决此问题,可提前创建多个线程,放入线程池中,使用时直接获取,使用之后放回池中。
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();
}
}