一、建立執行緒的第一種方式:
繼承thread ,由子類複寫run方法。
步驟:1,定義類繼承thread類;
2,目的是複寫run方法,將要讓執行緒執行的**都儲存到run方法中;
3,通過建立thread類的子類物件,建立執行緒物件;
4,呼叫執行緒的start方法,開啟執行緒,並執行run方法。
publicclass threaddemo extends
thread
public
static
void
main(string args)
}
二、建立執行緒的第二種方式:
實現乙個介面runnable。
步驟:1,定義類實現runnable介面。
2,覆蓋介面中的run方法(用於封裝執行緒要執行的**)。
3,通過thread類建立執行緒物件;
4,將實現了runnable介面的子類物件作為實際引數傳遞給thread類中的建構函式。
為什麼要傳遞呢?因為要讓執行緒物件明確要執行的run方法所屬的物件。
5,呼叫thread物件的start方法。開啟執行緒,並執行runnable介面子類中的run方法。
publicclass
runabletest
}class runabledemo implements
runnable
}
三、建立執行緒的第三種方式:
實現乙個介面callable。
步驟:1,定義類實現callable介面。
2,覆蓋介面中的call方法(用於封裝執行緒要執行的**)。
3,通過futuretask來建立物件,用於接收運算結果;
4,將實現了callable介面的子類物件作為實際引數傳遞給futuretask類中的建構函式;
5,通過thread類建立執行緒物件;
6,將futuretask物件作為實際引數傳遞給thread類中的建構函式;
7,呼叫thread物件的start方法。開啟執行緒,並執行callable介面子類中的call方法;
8,通過future物件的get方法獲取結果。
/*** 1、建立線程式三:實現callable介面。相較於runnable介面的方式,方法可以有返回值,並且可以丟擲異常。
2、執行callable方式,需要futuretask實現類的支援,用於接收運算結果。futuretask是runnablefuture介面的實現類,
runnablefuture介面繼承了runnable, future介面
3.futeretask也可用於閉鎖操作
*/public class callabletest
}class callabledemo implements callable
return sum;
}}
四、建立執行緒的第四種方式:執行緒池
建立執行緒的方式
thread 類進行派生並覆蓋 run方法 實現runnable介面建立 public class createthread start0會呼叫run方法,如果runnable null 會執行run方法,2.如果在構造thread的時候沒有傳遞或沒有複寫thread的run方法,該thread將不...
執行緒的建立方式
繼承thread類實現 實現runnable介面方式 實現callable介面方式 其中前兩種比較常用。但是,需要有返回值需要實現callable介面。繼承thread類,並重寫run方法 public class mythread extends thread mythread thread ne...
建立執行緒的方式
建立乙個執行緒主要有以下幾種方法 繼承thread類建立執行緒 是將乙個類宣告為thread的子類,這個子類應該重寫thread類的run方法,然後例項化這個子類物件並呼叫start方法。thread類本質上是實現了runnable介面的乙個例項。public class testthread ex...