Java建立執行緒的三種方法
導語:編寫多執行緒程式是為了實現多工的併發執行,從而能夠更好地與使用者互動。下面是Java建立執行緒的三種方法,一起來學習下吧:
Runnable和Callable的區別
(1)Callable規定的方法是call(),Runnable規定的方法是run().
(2)Callable的任務執行後可返回值,而Runnable的任務是不能返回值得
(3)call方法可以丟擲異常,run方法不可以
(4)執行Callable任務可以拿到一個Future物件,表示非同步計算的結果。它提供了檢查計算是否完成的方法,以等待計算的完成,並檢索計算的結果。通過Future物件可以瞭解任務執行情況,可取消任務的`執行,還可獲取執行結果。
通過實現Runnable介面來建立Thread執行緒:
步驟1:建立實現Runnable介面的類:
Java程式碼:
class SomeRunnable implements Runnable
{
public void run()
{
//do something here
}
}
步驟2:建立一個類物件:
Runnable oneRunnable = new SomeRunnable();
步驟3:由Runnable建立一個Thread物件:
Thread oneThread = new Thread(oneRunnable);
步驟4:啟動執行緒:
t();
至此,一個執行緒就建立完成了。
註釋:執行緒的執行流程很簡單,當執行程式碼t();時,就會執行oneRunnable物件中的void run();方法,
該方法執行完成後,執行緒就消亡了。
通過實現Callable介面來建立Thread執行緒:
與方法1類似,通過實現Callable介面來建立Thread執行緒:其中,Callable介面(也只有一個方法)定義如下:
Java程式碼:
public interface Callable
{
V call() throws Exception;
}
步驟1:建立實現Callable介面的類SomeCallable(略);
步驟2:建立一個類物件:
Callable oneCallable = new SomeCallable();
步驟3:由Callable建立一個FutureTask物件:
FutureTask oneTask = new FutureTask(oneCallable);
註釋:FutureTask是一個包裝器,它通過接受Callable來建立,它同時實現了
Future和Runnable介面。
步驟4:由FutureTask建立一個Thread物件:
Thread oneThread = new Thread(oneTask);
步驟5:啟動執行緒:
t();
至此,一個執行緒就建立完成了。
通過繼承Thread類來建立一個執行緒:
步驟1:定義一個繼承Thread類的子類:
Java程式碼:
class SomeThead extends Thraad
{
public void run()
{
//do something here
}
}
步驟2:構造子類的一個物件:
SomeThread oneThread = new SomeThread();
步驟3:啟動執行緒:
t();
至此,一個執行緒就建立完成了。
-
新手學習Java最高效的10個計劃
對於新手來說學習Java如同堵天書,下面是本站小編收集的關於新手學習Java最高效的10個計劃,希望可以為您的學習帶來幫助!計劃一:瞭解未來技術發展方向兩耳不聞窗外事,在如今是不合適的,尤其是在瞬息萬變的網際網路時代,作為一個開發者技術跟不上可以去專研,思想要跟不上,...
-
講述java中enum的用法
本文例項講述了java中enum的用法。分享給大家供大家參考。具體分析如下:1.基本用法複製程式碼程式碼如下:enumDay{SUNDAY,MONDAY,TUESDAY,WENDSDAY,THURSDAY,FRIDAY,SATURDAY;}列舉是常量,所以應該用大寫。2.列舉是物件列舉隱含地繼承了,所以它具有的.屬性和方法。遍...
-
java中String和StringBuffer的區別
java中String和StringBuffer的區別String這個類是Java中使用得最頻繁的類之一,以下就是小編精心推薦java中String和StringBuffer的區別,希望對大家有幫助!看到這個講解的不錯,所以轉一下在java中有3個類來負責字元的操作。acter是進行單個字元操作的,ng對一串字元...
-
Java技術怎麼學習
對於很多隻會C語言的初學者而言,面對java基礎語法學習,反而感覺很難,其實其中最大的問題不是語法難,而是一種程式設計思想的轉變。怎麼學習才是正確的呢?下面是相關的知識,歡迎閱讀。1.概述學過一段時間的同學一定會覺得Java學習最頭疼的不是語法結構的繁雜,而是Java本身...