Java并发工具类如ExecutorService的问题与示例
在Java编程中,ExecutorService
是Java并发库中的一个工具类。它提供了一种线程管理的方式,可以让我们更好地控制和调度多任务执行。
以下是ExecutorService
的一些问题及示例:
- 创建 ExecutorService:
ExecutorService executor = Executors.newFixedThreadPool(5); // 创建固定大小的线程池
- 提交任务到 ExecutorService:
Runnable task = () -> {
System.out.println("Task executed in a separate thread.");
try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); }
};
executor.execute(task); // 将任务放入线程池中执行
- 关闭 ExecutorService:
```java
executor.shutdown(); // 关闭线程池,但不再接受新的提交的任务
// 确保所有任务已经完成(阻塞)
while (!executor.isTerminated()) {
try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); }
}
executor.shutdownNow(); // 快速关闭线程池并停止所有当前任务
4. **检查线程池状态**:
```java
if (!executor.isTerminated()) {
System.out.println("ExecutorService still has active threads.");
}
总结:ExecutorService
是Java并发编程中的核心工具,用于管理和调度多线程任务。了解其创建、提交任务以及关闭方法对于正确使用ExecutorService
至关重要。
还没有评论,来说两句吧...