Java 開啟多線程常見的4種方法

小云
138
2023-08-14 13:49:14
欄目: 編程語言

Java 開啟多線程常見的4種方法如下:

  1. 繼承 Thread 類:

創(chuàng)建一個(gè)繼承自 Thread 類的子類,并重寫 run() 方法。然后通過創(chuàng)建該子類的對(duì)象來開啟線程。

class MyThread extends Thread {
public void run() {
// 線程執(zhí)行的代碼
}
}
// 創(chuàng)建線程對(duì)象并開啟線程
MyThread thread = new MyThread();
thread.start();
  1. 實(shí)現(xiàn) Runnable 接口:

創(chuàng)建一個(gè)實(shí)現(xiàn)了 Runnable 接口的類,并實(shí)現(xiàn) run() 方法。然后通過創(chuàng)建該類的對(duì)象,并將其傳遞給 Thread 的構(gòu)造函數(shù)來開啟線程。

class MyRunnable implements Runnable {
public void run() {
// 線程執(zhí)行的代碼
}
}
// 創(chuàng)建線程對(duì)象并開啟線程
Thread thread = new Thread(new MyRunnable());
thread.start();
  1. 使用 Callable 和 FutureTask:

創(chuàng)建一個(gè)實(shí)現(xiàn)了 Callable 接口的類,并實(shí)現(xiàn) call() 方法。然后創(chuàng)建一個(gè) FutureTask 對(duì)象,將 Callable 對(duì)象作為參數(shù)傳遞給 FutureTask 的構(gòu)造函數(shù)。最后通過創(chuàng)建 Thread 對(duì)象,將 FutureTask 對(duì)象作為參數(shù)傳遞給 Thread 的構(gòu)造函數(shù)來開啟線程。

class MyCallable implements Callable<Integer> {
public Integer call() throws Exception {
// 線程執(zhí)行的代碼
return 1;
}
}
// 創(chuàng)建 Callable 對(duì)象和 FutureTask 對(duì)象
Callable<Integer> callable = new MyCallable();
FutureTask<Integer> futureTask = new FutureTask<>(callable);
// 創(chuàng)建線程對(duì)象并開啟線程
Thread thread = new Thread(futureTask);
thread.start();
  1. 使用線程池:

使用 Executors 類提供的靜態(tài)方法創(chuàng)建一個(gè)線程池對(duì)象,然后將需要執(zhí)行的任務(wù)提交給線程池進(jìn)行處理。

ExecutorService executorService = Executors.newFixedThreadPool(10);
Runnable task = new Runnable() {
public void run() {
// 線程執(zhí)行的代碼
}
};
// 提交任務(wù)給線程池處理
executorService.submit(task);
// 關(guān)閉線程池
executorService.shutdown();

0