在 Java 中,可以使用线程池来启动多线程。以下是使用线程池启动多线程的示例代码:
首先,需要导入 java.util.concurrent.ExecutorService
和 java.util.concurrent.Executors
类。
然后,可以使用 Executors.newFixedThreadPool()
方法创建一个固定大小的线程池。
接下来,可以使用 submit()
方法向线程池提交一个 Runnable
对象,表示要执行的任务。线程池会自动为该任务分配一个空闲线程来执行。
最后,使用 shutdown()
方法关闭线程池,以确保所有任务都已完成。
以下是一个完整的示例代码:
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ThreadPoolExample { public static void main(String[] args) { // 创建一个固定大小为 5 的线程池 ExecutorService executor = Executors.newFixedThreadPool(5); // 向线程池提交 10 个任务 for (int i = 0; i < 10; i++) { Runnable task = new MyTask(i); executor.submit(task); } // 关闭线程池 executor.shutdown(); } } class MyTask implements Runnable { private int taskId; public MyTask(int taskId) { this.taskId = taskId; } @Override public void run() { System.out.println("Task ID : " + taskId + " executed by " + Thread.currentThread().getName()); } }
上述代码创建了一个固定大小为 5 的线程池,然后向线程池提交 10 个任务(MyTask
类的实例),每个任务都会在一个空闲线程中执行。输出结果类似于:
Task ID : 0 executed by pool-1-thread-1 Task ID : 1 executed by pool-1-thread-2 Task ID : 2 executed by pool-1-thread-3 Task ID : 3 executed by pool-1-thread-4 Task ID : 4 executed by pool-1-thread-5 Task ID : 5 executed by pool-1-thread-2 Task ID : 6 executed by pool-1-thread-3 Task ID : 7 executed by pool-1-thread-1 Task ID : 8 executed by pool-1-thread-4 Task ID : 9 executed by pool-1-thread-5
这表明任务在不同的线程中并行执行。