Java线程池是一种线程管理的工具,用于优化线程的创建和销毁,提高程序的性能和可靠性。线程池中包含多个线程,这些线程可以被重复利用,从而减少了创建线程的开销。当有任务需要执行时,线程池中的一个线程就会被分配给这个任务,当任务执行完毕后,该线程又会被返回到线程池中等待下一个任务的到来。下面是一个Java线程池的使用样例:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadPoolExample {
  public static void main(String[] args) {
    // 创建一个固定大小的线程池,其中包含5个线程
    ExecutorService executor = Executors.newFixedThreadPool(5);

    // 提交10个任务到线程池中
    for (int i = 1; i <= 10; i++) {
      final int taskID = i;
      executor.execute(new Runnable() {
        public void run() {
          System.out.println("Thread " + Thread.currentThread().getName() + " is executing task " + taskID);
        }
      });
    }

    // 关闭线程池
    executor.shutdown();
  }
}

这个程序创建了一个包含5个线程的线程池,并向线程池中提交10个任务。每个任务都是一个Runnable对象,当任务被分配到一个线程时,该线程就会执行run()方法中的代码,输出当前线程的名称和任务的ID。在所有任务执行完毕后,线程池会被关闭。