Java并发工具库:理解和使用ExecutorService
Java的并发工具库提供了一种高效的方式来管理线程,特别是在处理大量任务或者需要控制线程执行顺序的情况下。其中ExecutorService
是这一框架中的核心工具。
1. 什么是ExecutorService?
ExecutorService
是一个接口,它代表了一个可以接受和执行Runnable
(实现Thread.run()
的类)或Callable
(实现了Future.get()
的返回类型)任务的线程池。
2. 如何创建并使用ExecutorService?
// 创建一个固定大小的线程池,最多5个线程
ExecutorService executor = Executors.newFixedThreadPool(5);
// 提交一个Runnable到线程池执行
executor.submit(new TaskToExecute()); // TaskToExecute是你的任务类
// 关闭线程池,防止资源泄露
executor.shutdown();
3. 关闭ExecutorService后还能提交任务吗?
关闭的ExecutorService
是不允许再提交新任务的。如果尝试提交新的任务,程序会抛出RejectedExecutionException
。
executor.shutdown(); // 关闭线程池
try {
executor.submit(new TaskToExecute()); // 这里会抛出异常
} catch (RejectedExecutionException e) {
System.out.println("试图在关闭的ExecutorService中提交任务,被拒绝:");
e.printStackTrace();
}
通过以上对ExecutorService
的理解和使用,你可以在Java并发编程中更好地管理和控制线程。
还没有评论,来说两句吧...