java线程池多线程示例
下面是一个简单的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 s) {
this.message = s;
}
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();
}
}
}
在这个示例中,我们创建了一个固定大小的线程池来处理10个任务。每个任务都是一个WorkerThread对象,它实现了Runnable接口。线程池调用execute()方法来提交任务,然后在线程池中创建一个新的线程来处理它。当所有任务都完成后,我们调用shutdown()方法来关闭线程池。最后,我们使用isTerminated()方法来检查线程池是否已经终止,然后输出“Finished all threads”消息
原文地址: https://www.cveoy.top/t/topic/dxTU 著作权归作者所有。请勿转载和采集!