并发编程:Java线程池使用示例
Java线程池是Java中一种常用的管理线程的机制,可以有效提高程序性能并降低资源消耗。以下是一个简单的Java线程池使用示例:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建一个固定大小的线程池,大小为5个线程
ExecutorService executor = Executors.newFixedThreadPool(5);
// 提交任务到线程池执行
for (int i = 0; i < 10; i++) { // 这里可以是任何需要在多线程环境下运行的任务
executor.submit(() -> {
System.out.println("Task " + i + " is running by thread: " + Thread.currentThread().getName());
try {
Thread.sleep(1000); // 模拟任务执行时间
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Task " + i + " completed by thread: " + Thread.currentThread().getName());
});
}
// 关闭线程池,所有提交的任务将全部等待池关闭后进行执行
executor.shutdown();
// 验证任务是否都已完成且不再占用资源
while (!executor.isTerminated())) {
System.out.println("Still running tasks...");
try {
Thread.sleep(1000); // 模拟检查时间
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 线程池关闭后,所有等待执行的任务将开始执行
System.out.println("All tasks have been executed and completed.");
}
}
这个示例创建了一个固定大小的线程池(大小为5个线程),然后提交10个任务到线程池进行多线程并发执行。最后关闭线程池,验证所有任务都已经完成。
还没有评论,来说两句吧...