java中 threadpoolexecutor使用例子
时间: 2024-05-05 17:21:05 浏览: 225
ThreadPoolExecutor是Java中一个非常强大的线程池管理工具,可以用来管理线程池中的线程数量,控制线程的执行时间和优先级等。下面是ThreadPoolExecutor的使用例子:
```
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
public class ThreadPoolExecutorTest {
public static void main(String[] args) {
// 创建一个线程池,包含10个线程
ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(10);
// 提交任务到线程池
for (int i = 0; i < 20; i++) {
executor.submit(new MyTask(i));
}
// 关闭线程池
executor.shutdown();
}
static class MyTask implements Runnable {
private int taskNum;
public MyTask(int taskNum) {
this.taskNum = taskNum;
}
@Override
public void run() {
System.out.println("正在执行task " + taskNum);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("task " + taskNum + "执行完毕");
}
}
}
```
以上代码会创建一个包含10个线程的线程池,然后提交20个任务到线程池中执行,每个任务执行1秒钟。可以看到,线程池会自动管理线程数量,保证不超过10个线程在同时执行任务。任务执行完毕后,线程会被释放,可以被线程池重新利用。最后,调用shutdown方法关闭线程池。
阅读全文