Thread 和 Runnable 的區別

2021-07-16 03:45:32 字數 742 閱讀 7251

thread 和 runnable 的區別

實際上,thread也是乙個runnable,它實現了runnable介面,在thread類中有乙個runnable型別的target欄位,代表要被執行在這個子執行緒中的任務。

public class thread implements runnable  //thread是實現了runnable介面

//有一些省略的**

this.group = group ;

this.target = runnable ; //設定target

this.group.addthread(this);

}另乙個方法是

//啟動乙個新的執行緒,如果target不為空則執行target的run函式,否則執行當前物件的run方法

public synchronized void start()

}

實際上最終被執行緒執行的任務是runnable,而非thread。thread實際上是對runnable的包裝,並且通過一些狀態對thread進行管理與排程。runnable介面定義了可執行的任務,有乙個無返回值的run()函式。

public inte***ce runnable

當啟動乙個執行緒的時候,如果thread的target不為空,則會在子執行緒中執行這個target的run 函式,否則虛擬機器就會執行該執行緒自身的run函式。

Thread和Runnable的區別

runnable比thread要多一些優勢,主要是以下兩點 第一點就不多說了,至於第二點看以下兩個 示例就清楚了 static class ticketthread extends thread public static void main string args 以上是使用thread方式寫的,...

Thread和Runnable的區別

乙個程式中想要實現執行緒可以通過繼承thread或者實現runable介面來實現,兩者之間的區別有 1.繼承只能單繼承而實現可以多實現。2.thread和runnable是 模式 runnable定義執行緒規範 run thread實現執行緒作用 start 3.runnable共享資料更方便 例子...

Thread和Runnable執行執行緒

繼承thread類 package l thread建立新執行緒需要重寫run函式,該方法是新執行緒的入口點,也必須呼叫start 方法 本質上還是實現了runnable介面的乙個例項 thread runnable threadob,string threadname threadob 是乙個實現...