天天看點

Java多線程系列 - 如何啟動一個最簡單的多線程?代碼詳解

多線程的啟動

 在Java中我們實作多線程有三種方法,他們分别是:

  1. 繼承Thread 類進行實作
  2. 實作Runnable接口進行實作
  3. 通過 Callable 和 Future 建立線程。

    接下來就讓我們來進行多線程啟動的代碼詳解

代碼詳解

  1. 繼承Thread類
/*繼承Thread類,來實作多線程*/
class MyThread extends Thread{
    /*
    *  重寫其 run 方法
    * */
    @Override
    public void run() {
        while(true){
            System.out.println("我是另外一個線程");
        }
    }
}

public class Main {
    public static void main(String[] args) {
        // 定義對象
        MyThread myThread = new MyThread();
        // 啟動多線程
        myThread.start();
        // 主線程的列印
        while(true){
            System.out.println("主線程");
        }
    }
}
           
這裡是通過繼承Thread類進行實作多線程,繼承之後重寫run方法即可,run方法裡面寫需要執行的任務邏輯,最終通過自己定義的MyThread類的對象進行調用,使用start方法進行調用。
  1. 實作Runnable接口
/*
*  實作Runnable接口進行多線程的實作
* */
class MyRunnable implements Runnable{
    /*
    *   重寫 run 方法
    * */
    @Override
    public void run() {
        while(true){
            System.out.println("這是另外一個線程");
        }
    }
}

public class Main {
    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        // 将線程和任務進行關聯
        Thread thread = new Thread(myRunnable);
        thread.start();
        while (true){
            System.out.println("我是主線程");
        }
    }
}
           
這裡我們是通過實作了Runnable接口實作的多線程,但是和直接繼承Thread類相比較,有一點不同,實作的Runnable接口,進行重寫的run方法,隻是把任務邏輯寫進去了,但是并沒有直接的啟動多線程,此時還是需要一個多線程對象,來進行多線程的啟動,但這和我們寫的任務是沒有關系的,我們此時把建構好的Runnable對象,通過構造函數傳給Thread對象,進行任務的綁定即可。
  1. 通過 Callable 和 Future 建立線程。
此方法目前還沒能實作,後續更新