亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java實現多線程的方法有哪些

小億
97
2023-08-12 04:27:04
欄目: 編程語言

Java實現多線程的方法有以下幾種:

  1. 繼承Thread類:創建一個繼承自Thread類的子類,并重寫run方法,通過調用start方法啟動線程。
class MyThread extends Thread {
public void run() {
// 線程執行的代碼
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
}
}
  1. 實現Runnable接口:創建一個實現了Runnable接口的類,并實現run方法,通過創建Thread對象并將其作為參數傳遞,然后調用start方法啟動線程。
class MyRunnable implements Runnable {
public void run() {
// 線程執行的代碼
}
}
public class Main {
public static void main(String[] args) {
MyRunnable runnable = new MyRunnable();
Thread thread = new Thread(runnable);
thread.start();
}
}
  1. 使用Callable和Future:創建一個實現了Callable接口的類,并實現call方法,通過創建ExecutorService線程池對象,調用submit方法提交任務并返回Future對象,通過調用Future對象的get方法獲取線程執行結果。
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
class MyCallable implements Callable<Integer> {
public Integer call() {
// 線程執行的代碼
return 0;
}
}
public class Main {
public static void main(String[] args) {
MyCallable callable = new MyCallable();
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> future = executor.submit(callable);
try {
Integer result = future.get();
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
executor.shutdown();
}
}
  1. 使用線程池:創建一個ExecutorService線程池對象,通過調用execute方法提交任務,線程池會自動管理線程的創建和銷毀。
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Main {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(10);
for (int i = 0; i < 10; i++) {
executor.execute(new Runnable() {
public void run() {
// 線程執行的代碼
}
});
}
executor.shutdown();
}
}

0
富民县| 克拉玛依市| 吉安市| 乌兰县| 兴化市| 土默特左旗| 永胜县| 庆元县| 玉龙| 连江县| 都安| 洮南市| 容城县| 醴陵市| 清苑县| 开鲁县| 威海市| 南岸区| 兴仁县| 昌黎县| 太谷县| 广饶县| 永康市| 桓台县| 苏尼特右旗| 德兴市| 榆社县| 东海县| 灵石县| 江达县| 闽侯县| 焉耆| 桦川县| 翁牛特旗| 布拖县| 珲春市| 澄城县| 内丘县| 楚雄市| 连山| 西乌|