java使用线程池代码示例
时间: 2023-09-12 20:10:14 浏览: 73
下面是一个使用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); // 创建一个固定大小的线程池,大小为5
for (int i = 0; i < 10; i++) {
Runnable worker = new WorkerThread("Thread " + i);
executor.execute(worker); // 提交任务到线程池
}
executor.shutdown(); // 关闭线程池
while (!executor.isTerminated()) {
} // 等待所有任务完成
System.out.println("All threads are finished.");
}
}
class WorkerThread implements Runnable {
private String name;
public WorkerThread(String s) {
name = s;
}
public void run() {
System.out.println(Thread.currentThread().getName() + " Start. Command = " + name);
processCommand();
System.out.println(Thread.currentThread().getName() + " End.");
}
private void processCommand() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public String toString() {
return this.name;
}
}
```
这个示例代码创建了一个固定大小为5的线程池,提交10个任务到线程池中,每个任务都是一个WorkerThread对象。每个WorkerThread对象都有一个名字,模拟了一个实际的任务。线程池会在后台调度这些任务,最后等待所有任务完成后关闭线程池。在每个任务执行时,会打印出线程的名字和任务的名字,以及开始和结束的时间。
阅读全文