ThreadPoolExecutor创建多线程举个例子
时间: 2023-07-25 14:05:31 浏览: 107
linux epoll多线程编程 例子
5星 · 资源好评率100%
好的,关于 ThreadPoolExecutor 创建多线程的例子,比较经典的可以参考如下代码:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建固定数量的线程池
ExecutorService executor = Executors.newFixedThreadPool(5);
// 提交任务到线程池中
for(int i=0; i<10; i++) {
Runnable worker = new WorkerThread("" + i);
executor.execute(worker);
}
// 关闭线程池
executor.shutdown();
while (!executor.isTerminated()) {
}
System.out.println("Finished all threads");
}
}
class WorkerThread implements Runnable {
private String message;
public WorkerThread(String message) {
this.message = message;
}
public void run() {
System.out.println(Thread.currentThread().getName() + " Start. Message = " + message);
processMessage();
System.out.println(Thread.currentThread().getName() + " End.");
}
private void processMessage() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
```
在本例中,我们使用 `Executors.newFixedThreadPool(5)` 创建了一个拥有固定数量为5的线程池对象,并依次向线程池中提交了10个任务,每个任务都是一个 WorkerThread 对象。WorkerThread 类实现了 Runnable 接口,重写了 run() 方法,其中打印了线程的名称以及正在执行的任务的信息,同时在 `processMessage()` 方法中使用 sleep() 模拟了一些耗时的操作。
最后,我们使用 `executor.shutdown()` 关闭线程池,等待所有任务完成后打印 Finished all threads 消息。
阅读全文