并发编程:Java的线程池使用示例
在Java中,线程池是一种复用线程的方式,可以提高程序的运行效率。以下是一个简单的线程池使用示例:
导入相关库:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
创建线程池,这里我们使用一个固定大小的线程池(ThreadPoolExecutor):
ExecutorService executor = Executors.newFixedThreadPool(5); // 创建一个包含5个线程的线程池
将任务提交给线程池执行:
// 提交任务到线程池
executor.execute(new Runnable() {
@Override
public void run() {
System.out.println("Thread is running ..."); // 这里模拟一个耗时的任务
try {
Thread.sleep(2000); // 模拟耗时任务,此处睡眠2秒
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread has finished its task ...");
}
}));
线程池使用完成后,可以关闭线程池以释放资源:
executor.shutdown(); // 关闭线程池
while (!executor.isTerminated())) { // 检查是否有未完成的任务
try {
Thread.sleep(100); // 阻塞100毫秒,防止CPU浪费
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("ExecutorService has been shut down ..."); // 确保任务已经全部执行完毕
以上就是一个简单的Java线程池使用示例。
还没有评论,来说两句吧...