java创建公共线程池类,使用案例
时间: 2023-09-01 18:07:42 浏览: 175
下面是一个简单的Java创建公共线程池类的示例,以及如何使用该类进行任务提交。
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class CommonThreadPool {
private static final int THREAD_POOL_SIZE = 10;
private static ExecutorService executorService;
private CommonThreadPool() {
// 私有构造函数,防止类被实例化
}
// 创建公共线程池
public static synchronized void createThreadPool() {
if (executorService == null) {
executorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE);
}
}
// 向线程池中提交任务
public static void submitTask(Runnable task) {
if (executorService == null) {
createThreadPool();
}
executorService.submit(task);
}
// 关闭线程池
public static void shutdown() {
if (executorService != null) {
executorService.shutdown();
executorService = null;
}
}
}
```
使用示例:
```java
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建公共线程池
CommonThreadPool.createThreadPool();
// 提交任务
for (int i = 0; i < 20; i++) {
CommonThreadPool.submitTask(new Task(i));
}
// 关闭线程池
CommonThreadPool.shutdown();
}
private static class Task implements Runnable {
private int taskId;
public Task(int taskId) {
this.taskId = taskId;
}
@Override
public void run() {
System.out.println("Task " + taskId + " is running in thread " + Thread.currentThread().getName());
}
}
}
```
该示例中,我们创建了一个公共线程池类`CommonThreadPool`,该类使用了单例模式来保证只创建一个线程池实例。我们提供了`createThreadPool()`方法来创建线程池,`submitTask(Runnable task)`方法来提交任务,以及`shutdown()`方法来关闭线程池。在使用时,我们只需要调用`CommonThreadPool.submitTask(task)`方法即可向线程池中提交任务。
阅读全文