当前位置: 主页 > JAVA语言

java多线程并行-java编译成功案例分析之线程池并行执行多个任务

发布时间:2023-06-19 16:09   浏览次数:次   作者:佚名

Java 线程并行执行多个任务

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

然后,您应该可以看到多个任务并行执行,并在不同的线程中打印它们的编号和名称。