在Java中,可以使用java.lang.Thread
類或者java.util.concurrent
包中的ExecutorService
和Future
等接口來創建和管理多線程。這里我將向您展示如何使用這兩種方法在命令行(cmd)上運行多線程Java程序。
方法1:使用Thread類
MyThread.java
的文件,然后編寫以下代碼:public class MyThread extends Thread {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
}
javac MyThread.java
-cp
選項指定類路徑,然后運行編譯后的MyThread
類:java -cp . MyThread MyThread1 MyThread2 MyThread3
這將創建并啟動四個線程,每個線程打印出它的名稱和一個循環計數器。
方法2:使用ExecutorService和Future
MyThreadPool.java
的文件,然后編寫以下代碼:import java.util.concurrent.*;
public class MyThreadPool {
public static void main(String[] args) {
int numberOfThreads = 4;
ExecutorService executorService = Executors.newFixedThreadPool(numberOfThreads);
for (int i = 0; i < numberOfThreads; i++) {
executorService.submit(new MyRunnable(i));
}
executorService.shutdown();
}
}
class MyRunnable implements Runnable {
private int taskNumber;
public MyRunnable(int taskNumber) {
this.taskNumber = taskNumber;
}
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("Task " + taskNumber + ":" + i);
}
}
}
javac MyThreadPool.java
-cp
選項指定類路徑,然后運行編譯后的MyThreadPool
類:java -cp . MyThreadPool
這將創建一個固定大小的線程池,提交四個任務到線程池,每個任務打印出它的任務編號和一個循環計數器。完成后,線程池將關閉。