建立執行緒的四種方式

2021-10-17 03:28:41 字數 1750 閱讀 5108

目錄

一 繼承 thread 類建立執行緒

二 實現 runnable 介面建立執行緒

三 使用 callable 和 future 建立執行緒

四 使用執行緒池建立執行緒

**實現:

public class main 

}public class testthread extends thread

}

原理說明:

通過繼承 thread 類來建立並啟動多執行緒的一般步驟如下:

① 定義執行緒類,該類繼承 thread 類,重寫該類的 run() 方法,該方法被稱為執行緒執行體,裡面執行業務邏輯。

② 執行緒類建立執行緒物件。

③ 執行 start() 方法啟動執行緒。

需要說明的是,執行 start() 方法的時候,不會馬上執行 run() 方法,只有在獲取到 cpu 之後,才會執行 run() 方法。

**實現:

public class main 

}public class testthread implements runnable

}

原理說明:

通過實現 runnable 介面建立並啟動執行緒一般步驟如下:

① 定義執行緒類,該類實現 runnable 介面,重寫 run() 方法。

② 執行緒類建立執行緒物件,該物件作為 thread 構造函式引數來建立 thread 物件,該thread 物件才是真正的執行緒物件。

③ 執行 start() 方法啟動執行緒。

需要說明的是,執行 start() 方法的時候,不會馬上執行 run() 方法,只有在獲取到 cpu 之後,才會執行 run() 方法。

**實現:

public class main 

public class callablethread implements callable

}

原理說明:

使用 callable 和 future 建立並啟動執行緒一般步驟如下:

① 定義執行緒類,該類實現 callable 介面,重寫 call() 方法。

② 使用 futuretask 類來包裝 callable 物件,該 futuretask 物件封裝了 callable 物件的 call() 方法的返回值。

③ 使用 futuretask 物件作為 thread 物件的入參建立並啟動執行緒(因為futuretask實現了runnable介面)。

④ 呼叫 futuretask 物件的 get() 方法來獲得子執行緒執行結束後的返回值。

需要說明的是 ,futuretask.get()會阻塞主線程,一直等子執行緒執行完並返回後才能繼續執行主線程後面的**。

使用執行緒池建立執行緒:

建立執行緒的四種方式

1.繼承於thread類,重寫run 方法 2.實現runable介面,實現裡面的run 方法 前兩種不用多說 3.使用 futuretask 實現有返回結果的執行緒,可以返回執行緒執行結果 public class test class mycallable implements callable...

建立執行緒的四種方式

class thread00 extends thread class thread01 implements runnable class thread02 implements callable 對以上三種方法進行測試 測試四種建立執行緒的方式 public class newthread 輸出...

建立執行緒的四種方式

首先我們先來了解一下測試thread中的常用方法 一 繼承thread類 二 實現runnable介面 三 實現callable介面 四 使用執行緒池建立 建立執行緒方式一 繼承thread類 繼承thread類建立執行緒的步驟為 1 新建乙個主類,然後再建立乙個類繼承thread的子類。2 重寫t...