Java線程池的使用方法如下:
創(chuàng)建線程池對(duì)象:可以使用Executors
類的靜態(tài)方法來創(chuàng)建線程池對(duì)象。例如,可以使用Executors.newFixedThreadPool(int nThreads)
方法創(chuàng)建一個(gè)固定大小的線程池。
提交任務(wù)給線程池執(zhí)行:可以使用線程池的execute(Runnable command)
方法提交一個(gè)Runnable任務(wù)給線程池執(zhí)行。也可以使用submit(Callable<T> task)
方法提交一個(gè)Callable任務(wù)給線程池執(zhí)行。
關(guān)閉線程池:可以使用線程池的shutdown()
方法來關(guān)閉線程池。該方法會(huì)等待所有已提交的任務(wù)執(zhí)行完成后再關(guān)閉線程池。
以下是一個(gè)簡(jiǎn)單的示例代碼:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExample {
public static void main(String[] args) {
// 創(chuàng)建固定大小為5的線程池
ExecutorService executor = Executors.newFixedThreadPool(5);
// 提交10個(gè)任務(wù)給線程池執(zhí)行
for (int i = 0; i < 10; i++) {
final int taskId = i;
executor.execute(() -> {
System.out.println("Task " + taskId + " is being executed by " + Thread.currentThread().getName());
// 任務(wù)邏輯代碼
});
}
// 關(guān)閉線程池
executor.shutdown();
}
}
在以上示例中,我們創(chuàng)建了一個(gè)固定大小為5的線程池,然后提交了10個(gè)任務(wù)給線程池執(zhí)行。每個(gè)任務(wù)都會(huì)打印出當(dāng)前任務(wù)的ID和執(zhí)行線程的名稱。最后,我們調(diào)用了線程池的shutdown()
方法來關(guān)閉線程池。