在Java中,可以使用`ExecutorService`接口和`Executors`類來(lái)創(chuàng)建固定大小的線程池。固定線程池中的線程數(shù)量是固定的,一旦創(chuàng)建后就不會(huì)改變。
以下是使用固定線程池的示例代碼:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Main {
public static void main(String[] args) {
// 創(chuàng)建固定大小的線程池,線程數(shù)量為3
ExecutorService executor = Executors.newFixedThreadPool(3);
// 提交任務(wù)給線程池
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());
}
});
}
// 關(guān)閉線程池
executor.shutdown();
}
}
在上述示例中,通過(guò)調(diào)用`Executors.newFixedThreadPool(3)`創(chuàng)建了一個(gè)固定大小為3的線程池。然后,使用`executor.submit()`方法提交5個(gè)任務(wù)給線程池執(zhí)行。每個(gè)任務(wù)都是一個(gè)`Runnable`對(duì)象,用于輸出任務(wù)的編號(hào)和執(zhí)行線程的名稱。
最后,調(diào)用`executor.shutdown()`方法關(guān)閉線程池。這將停止接受新的任務(wù),并等待已提交的任務(wù)執(zhí)行完成。
使用固定線程池可以控制并發(fā)線程的數(shù)量,適用于需要限制并發(fā)線程數(shù)量的場(chǎng)景。通過(guò)合理設(shè)置線程池大小,可以提高并發(fā)性能,并防止由于線程過(guò)多導(dǎo)致的資源耗盡或性能下降。