线程池怎么使用
时间: 2023-07-01 14:29:16 浏览: 98
线程池是一种多线程处理方式,它可以在程序启动时创建一定数量的线程,并将它们放入一个线程池中等待任务的到来。当有任务到来时,线程池会从线程池中取出一个线程来处理任务,当处理完任务后,该线程并不会立即销毁,而是继续等待下一次任务的到来。
使用线程池的步骤如下:
1. 创建线程池对象。
2. 定义任务对象,实现Runnable接口,重写run方法。
3. 向线程池中添加任务,可以通过调用execute方法或submit方法来实现。
4. 关闭线程池,一般在程序退出时调用shutdown方法关闭线程池。
下面是一个简单的线程池使用示例:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolDemo {
public static void main(String[] args) {
// 创建一个具有固定线程数的线程池
ExecutorService pool = Executors.newFixedThreadPool(2);
// 向线程池中添加任务
pool.execute(new Task());
pool.execute(new Task());
pool.execute(new Task());
// 关闭线程池
pool.shutdown();
}
static class Task implements Runnable {
public void run() {
System.out.println(Thread.currentThread().getName() + " is running");
}
}
}
```
在上面的代码中,我们创建了一个具有固定线程数的线程池,并向线程池中添加了三个任务。运行结果如下:
```
pool-1-thread-1 is running
pool-1-thread-2 is running
pool-1-thread-1 is running
```
可以看到,线程池中的两个线程被用来处理任务,第三个任务需要等待前面的任务执行完毕才能被处理。当线程池关闭时,所有的任务都会被执行完毕。
阅读全文