在 Java 中創建線程是非常簡單的。要創建一個新線程,我們只需要繼承 Thread 類并覆蓋 run() 方法。接下來,我們為新線程開辟一個新的棧空間并調用 start() 方法啟動新線程。下面是一個示例:
class MyThread extends Thread { public void run() { System.out.println("MyThread running."); } } public class Main { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); } }
在上面的示例中,我們定義了一個名為 MyThread 的類,繼承了 Thread 類并覆蓋了 run() 方法。在 main() 方法中,我們創建了一個 MyThread 的實例,并通過調用 start() 方法啟動了一個新線程。
除了繼承 Thread 類之外,我們還可以實現 Runnable 接口來創建線程。實現 Runnable 接口的類必須覆蓋 run() 方法。與繼承 Thread 類不同,實現 Runnable 接口的類可以繼承其他類或實現其他接口。下面是一個使用 Runnable 接口創建線程的示例:
class MyRunnable implements Runnable { public void run() { System.out.println("MyRunnable running."); } } public class Main { public static void main(String[] args) { MyRunnable runnable = new MyRunnable(); Thread thread = new Thread(runnable); thread.start(); } }
在上面的示例中,我們定義了一個名為 MyRunnable 的類,實現了 Runnable 接口并覆蓋了 run() 方法。在 main() 方法中,我們創建了一個 MyRunnable 的實例,并創建了一個新的 Thread 對象,將 MyRunnable 實例作為參數傳遞給它的構造函數,最后調用 start() 方法啟動新線程。
無論是繼承 Thread 類還是實現 Runnable 接口,都需要注意的是,當我們啟動一個新線程之后,它的 run() 方法會在它自己的棧空間中執行,而不是在主線程的棧空間中執行。也就是說,新線程是與主線程并行運行的,并且擁有自己的調用棧和程序計數器。