java多线程池使用案例
时间: 2023-11-21 16:56:50 浏览: 121
以下是Java多线程池使用案例:
1.使用标准库中的线程池
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExample {
public static void main(String[] args) {
//用标准库中的线程池,创建出一个线程池中的实例
ExecutorService pool = Executors.newCachedThreadPool();
//给这个实例里面加入一些任务
for (int i = 0; i < 5; i++) {
pool.submit(new Runnable() {
@Override
public void run() {
System.out.println("hello");
}
});
}
//关闭线程池
pool.shutdown();
}
}
```
2.自定义线程池
```java
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class MyThreadPoolExample {
public static void main(String[] args) {
//创建一个阻塞队列
BlockingQueue<Runnable> queue = new ArrayBlockingQueue<>(10);
//创建一个线程池
ThreadPoolExecutor pool = new ThreadPoolExecutor(5, 10, 60, TimeUnit.SECONDS, queue);
//给这个实例里面加入一些任务
for (int i = 0; i < 1000; i++) {
int taskId = i;//注意匿名内部类的变量捕获
pool.submit(new Runnable() {
@Override
public void run() {
System.out.println("执行当前任务:" + taskId + "当前线程:" + Thread.currentThread().getName());
}
});
}
//关闭线程池
pool.shutdown();
}
}
```
阅读全文
相关推荐










