java中线程池参数
时间: 2023-12-04 13:41:19 浏览: 105
目前就这么多思考还在继续-深入理解Java线程池(PPT:原理+代码)
Java中线程池的参数包括以下7个:
1. corePoolSize:线程池的基本大小,即在没有任务需要执行的时候线程池的大小。
2. maximumPoolSize:线程池最大的大小,即线程池中允许的最大线程数。
3. keepAliveTime:线程池中的线程空闲后,保持存活的时间。
4. unit:keepAliveTime的时间单位。
5. workQueue:任务队列,用于保存等待执行的任务的阻塞队列。
6. threadFactory:线程工厂,用于创建新线程。
7. handler:拒绝策略,用于当任务队列已满,且线程池中的线程数达到maximumPoolSize时,如何拒绝新任务的策略。
下面是一个示例代码,展示了如何使用Java中的线程池参数:
```java
import java.util.concurrent.*;
public class ThreadPoolDemo {
public static void main(String[] args) {
// 创建一个线程池
ThreadPoolExecutor executor = new ThreadPoolExecutor(
2, // corePoolSize
4, // maximumPoolSize
60, // keepAliveTime
TimeUnit.SECONDS, // unit
new ArrayBlockingQueue<Runnable>(4), // workQueue
Executors.defaultThreadFactory(), // threadFactory
new ThreadPoolExecutor.AbortPolicy() // handler
);
// 提交任务
for (int i = 0; i < 10; i++) {
executor.execute(new Task(i));
}
// 关闭线程池
executor.shutdown();
}
static class Task implements Runnable {
private int num;
public Task(int num) {
this.num = num;
}
@Override
public void run() {
System.out.println("正在执行task " + num);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("task " + num + "执行完毕");
}
}
}
```
阅读全文