Java并发编程实战:线程池使用示例
在Java的并发编程中,线程池是一个非常重要的工具。它允许我们在创建新线程时复用已有的线程,从而提高系统效率和资源利用率。
以下是一个简单的线程池使用示例:
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建一个固定大小的线程池
ExecutorService executor = Executors.newFixedThreadPool(5);
// 提交任务到线程池
for (int i = 0; i < 10; i++) {
final int index = i;
executor.submit(() -> {
System.out.println("Task " + index + " is running by thread: " + Thread.currentThread().getName());
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Task " + index + " finished by thread: " + Thread.currentThread().getName());
});
}
// 关闭线程池
executor.shutdown();
// 等待所有任务完成或超时
try {
if (!executor.awaitTermination(60, TimeUnit.SECONDS))) {
System.err.println("Executor did not terminate!");
}
} catch (InterruptedException e) {
System.err.println("Interrupted while waiting for executor to terminate.");
e.printStackTrace();
}
}
}
这个示例创建了一个固定大小的线程池,然后提交了10个任务到线程池。每个任务运行一段时间后打印消息并结束。最后关闭线程池,并等待所有任务完成或超时。
还没有评论,来说两句吧...