八.线程池

对于经常创建,使用量大的资源,如并发情况下的线程,对性能影响很大。为解决此问题,可提前创建多个线程,放入线程池中,使用时直接获取,使用之后放回池中。

java jdk提供了ExecutorServiceExecutors

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();
    }
}