java多线程并行-java编译成功案例分析之线程池并行执行多个任务
发布时间:2023-06-19 16:09 浏览次数:次 作者:佚名
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class HelloWorldThreadPool {
public static void main(String[] args) {
int numOfThreads = 4;
ExecutorService executor = Executors.newFixedThreadPool(numOfThreads);
for (int i = 0; i < numOfThreads; i++) {
final int taskNum = i;
executor.submit(() -> {
System.out.println("Task " + taskNum + " is running on thread " + Thread.currentThread().getName());
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Task " + taskNum + " is completed on thread " + Thread.currentThread().getName());
});
}
executor.shutdown();
}
}
在上面的代码中,我们创建了一个 HelloWorldThreadPool 类java多线程并行,该类创建了一个线程池java多线程并行,并使用该线程池并行执行多个任务。我们使用 Executors.newFixedThreadPool() 方法创建了一个固定大小的线程池,其中包含 numOfThreads 个线程。然后,我们使用 executor.submit() 方法将每个任务提交给线程池执行。
每个任务都是一个简单的 Lambda 表达式,它打印出任务编号和当前线程的名称,然后睡眠 2 秒钟,最后再次打印任务编号和当前线程的名称。这样做是为了模拟一个耗时的任务。当所有任务完成后,我们调用 executor.shutdown() 方法关闭线程池。
要运行此代码,您只需要使用 JDK 或 JRE 安装 Java 运行时环境,并将代码保存在名为 HelloWorldThreadPool.java 的文件中。然后,打开终端并进入包含该文件的目录,然后编译该文件:
javac HelloWorldThreadPool.java
编译成功后,您可以运行该应用程序:
java HelloWorldThreadPool
然后,您应该可以看到多个任务并行执行,并在不同的线程中打印它们的编号和名称。