Java 開啟多線程常見的4種方法如下:
創建一個繼承自 Thread 類的子類,并重寫 run() 方法。然后通過創建該子類的對象來開啟線程。
class MyThread extends Thread {
public void run() {
// 線程執行的代碼
}
}
// 創建線程對象并開啟線程
MyThread thread = new MyThread();
thread.start();
創建一個實現了 Runnable 接口的類,并實現 run() 方法。然后通過創建該類的對象,并將其傳遞給 Thread 的構造函數來開啟線程。
class MyRunnable implements Runnable {
public void run() {
// 線程執行的代碼
}
}
// 創建線程對象并開啟線程
Thread thread = new Thread(new MyRunnable());
thread.start();
創建一個實現了 Callable 接口的類,并實現 call() 方法。然后創建一個 FutureTask 對象,將 Callable 對象作為參數傳遞給 FutureTask 的構造函數。最后通過創建 Thread 對象,將 FutureTask 對象作為參數傳遞給 Thread 的構造函數來開啟線程。
class MyCallable implements Callable<Integer> {
public Integer call() throws Exception {
// 線程執行的代碼
return 1;
}
}
// 創建 Callable 對象和 FutureTask 對象
Callable<Integer> callable = new MyCallable();
FutureTask<Integer> futureTask = new FutureTask<>(callable);
// 創建線程對象并開啟線程
Thread thread = new Thread(futureTask);
thread.start();
使用 Executors 類提供的靜態方法創建一個線程池對象,然后將需要執行的任務提交給線程池進行處理。
ExecutorService executorService = Executors.newFixedThreadPool(10);
Runnable task = new Runnable() {
public void run() {
// 線程執行的代碼
}
};
// 提交任務給線程池處理
executorService.submit(task);
// 關閉線程池
executorService.shutdown();