在Java中,可以使用`ExecutorService`接口和`Executors`类来创建固定大小的线程池。固定线程池中的线程数量是固定的,一旦创建后就不会改变。
以下是使用固定线程池的示例代码:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Main {
public static void main(String[] args) {
// 创建固定大小的线程池,线程数量为3
ExecutorService executor = Executors.newFixedThreadPool(3);
// 提交任务给线程池
for (int i = 1; i <= 5; i++) {
final int taskId = i;
executor.submit(new Runnable() {
public void run() {
System.out.println("Task " + taskId + " executed by " + Thread.currentThread().getName());
}
});
}
// 关闭线程池
executor.shutdown();
}
}
在上述示例中,通过调用`Executors.newFixedThreadPool(3)`创建了一个固定大小为3的线程池。然后,使用`executor.submit()`方法提交5个任务给线程池执行。每个任务都是一个`Runnable`对象,用于输出任务的编号和执行线程的名称。
最后,调用`executor.shutdown()`方法关闭线程池。这将停止接受新的任务,并等待已提交的任务执行完成。
使用固定线程池可以控制并发线程的数量,适用于需要限制并发线程数量的场景。通过合理设置线程池大小,可以提高并发性能,并防止由于线程过多导致的资源耗尽或性能下降。