在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()`方法關閉線程池。這將停止接受新的任務,并等待已提交的任務執行完成。
使用固定線程池可以控制并發線程的數量,適用于需要限制并發線程數量的場景。通過合理設置線程池大小,可以提高并發性能,并防止由于線程過多導致的資源耗盡或性能下降。