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。在所有任务执行完毕后,线程池会被关闭。