Java創建線程有哪幾種方式?
在 Java 中,創建線程有多種方式,主要包括使用 Thread
類和實現 Runnable
接口。以下是幾種常見的創建線程的方式:
-
繼承
Thread
類:通過繼承
Thread
類并重寫run
方法來創建線程。class MyThread extends Thread {public void run() {for (int i = 0; i < 5; i++) {System.out.println(Thread.currentThread().getName() + ": " + i);}} }public class ThreadExample {public static void main(String[] args) {MyThread thread1 = new MyThread();MyThread thread2 = new MyThread();thread1.start();thread2.start();} }
-
實現
Runnable
接口:通過實現
Runnable
接口并將其傳遞給Thread
類來創建線程。這種方式更靈活,因為一個類可以實現多個接口,而 Java 中是單繼承的。class MyRunnable implements Runnable {public void run() {for (int i = 0; i < 5; i++) {System.out.println(Thread.currentThread().getName() + ": " + i);}} }public class RunnableExample {public static void main(String[] args) {MyRunnable myRunnable = new MyRunnable();Thread thread1 = new Thread(myRunnable);Thread thread2 = new Thread(myRunnable);thread1.start();thread2.start();} }
-
使用匿名類:
通過匿名類創建線程,適用于一次性使用的情況。
public class AnonymousThreadExample {public static void main(String[] args) {Thread thread1 = new Thread(new Runnable() {public void run() {for (int i = 0; i < 5; i++) {System.out.println(Thread.currentThread().getName() + ": " + i);}}});thread1.start();} }
-
使用
ExecutorService
框架:使用
ExecutorService
框架可以更方便地管理和執行線程。import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class ExecutorServiceExample {public static void main(String[] args) {ExecutorService executorService = Executors.newFixedThreadPool(2);Runnable myRunnable = new Runnable() {public void run() {for (int i = 0; i < 5; i++) {System.out.println(Thread.currentThread().getName() + ": " + i);}}};executorService.submit(myRunnable);executorService.submit(myRunnable);executorService.shutdown();} }
以上是幾種常見的創建線程的方式,選擇哪種方式取決于具體的需求和設計。通常情況下,推薦使用實現 Runnable
接口的方式,因為它更靈活,可以避免 Java 單繼承的限制。