建立執行緒的四種方式

2021-10-05 17:51:27 字數 2507 閱讀 1172

首先我們先來了解一下測試thread中的常用方法:

一、繼承thread類

二、實現runnable介面

三、實現callable介面

四、使用執行緒池建立

建立執行緒方式一:繼承thread類

繼承thread類建立執行緒的步驟為:

(1)新建乙個主類,然後再建立乙個類繼承thread的子類。

(2)重寫thread類中的run()方法,將所要完成的任務**寫進run()方法中;

(3)建立thread類的子類的物件;

(4)通過該物件呼叫start()方法,start()方法表示開始執行緒,然後呼叫run()方法;

class mythread extends thread}}

}public class threadtext}}

}

建立執行緒方式二:實現runnable介面

實現runnable介面建立執行緒的步驟為:

(1)建立乙個類並implement實現runnable介面

(2)在實現類中重寫run()方法,將所要完成的任務**寫進run()方法中

(3)建立實現runnable介面的類的物件,將該物件當做thread類的構造方法中的引數傳進去

(4)使用thread類的構造方法建立乙個物件,並呼叫start()方法即可執行該執行緒

說明:在開發中優先選擇實現runnable介面的方式而不是繼承runnable介面的方式。

原因

1.實現的方式沒有類的單繼承行的侷限性

2.實現的方式更適合來處理多個執行緒有共享資料的情況

class

mthread

implements

runnable}}

}public

class

threadtest1

}

建立執行緒方式三:實現callable介面 -->它是jdk 5.0 版本新增的

實現callable介面建立執行緒的步驟為:

(1)建立乙個類並實現callable介面

(2)實現或者說是重寫call()方法,將此執行緒需要執行的操作宣告寫在call()中,需要注意的是call()方法有返回值,並且可以丟擲異常,被外面的操作捕獲,獲取異常的資訊

(3)建立callable介面實現類的物件

(4)將此callable介面實現類的物件作為傳遞到futuretask構造器中,建立futuretask的物件

(5)將futuretask的物件作為引數傳遞到thread類的構造器中,建立thread物件,並呼叫start()

(6)獲取callable中call方法的返回值,get()返回值即為futuretask構造器引數callable實現類重寫的call()的返回值

//1.建立乙個實現callable的實現類

class

numthread

implements

callable

}return sum;}}

public

class

threadnew

catch

(interruptedexception e)

catch

(executionexception e)

}}

實現callable介面的方式建立多戰程比實現runnable按口建立多執行緒方式強大的理解:

1.call()可以有返回值的。

2. call() 可以丟擲異常,被外面的操作捕獲,獲取異常的資訊

3. callable是支援泛型的

建立執行緒的方式四:使用執行緒池建立

使用執行緒池建立執行緒的步驟:

(1)使用executors類中的newfixedthreadpool(int num)方法建立乙個執行緒數量為num的執行緒池

(2)呼叫執行緒池中的execute()方法執行由實現runnable介面建立的執行緒;呼叫submit()方法執行由實現callable介面建立的執行緒

(3)呼叫執行緒池中的shutdown()方法關閉執行緒池

class

numberthread

implements

runnable}}

}class

numberthread1

implements

callable

}return sum;

}public

static

class

threapool

}}

使用執行緒池好處:

建立執行緒的四種方式

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 輸出...

建立執行緒的四種方式

建立執行緒的四種方式 1 繼承thread類 定義乙個thread類的子類,重寫run方法,將相關邏輯實現,run 方法就是執行緒要執行的業務邏輯方法 建立自定義的執行緒子類物件 呼叫子類例項的star 方法來啟動執行緒 public class mythread extends thread pu...