多線程的啟動
在Java中我們實作多線程有三種方法,他們分别是:
- 繼承Thread 類進行實作
- 實作Runnable接口進行實作
-
通過 Callable 和 Future 建立線程。
接下來就讓我們來進行多線程啟動的代碼詳解
代碼詳解
- 繼承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方法進行調用。
- 實作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對象,進行任務的綁定即可。
- 通過 Callable 和 Future 建立線程。
此方法目前還沒能實作,後續更新