建立多執行緒除了直接繼承thread,還可以實現runnable()介面,或者說後者是更優的解決方案:
class
ticket
implements
runnable
}}class
ticketdemo
}
注意:
為什麼將runnable介面的子類物件傳遞給thread的建構函式
因為,自定義的run方法所屬的物件是runnable介面的子類方法,所以要讓執行緒去執行指定物件的run方法,就必須明確該run方法所屬物件
實現方式和繼承方式有什麼區別
實現方式好處:避免了單繼承的侷限性;(繼承thread之後就無法繼承其他類)
在定義執行緒時,建議使用實現方式;
繼承thread:執行緒**存放在thread子類run方法中;
實現runnable,執行緒**存放在介面的子類run方法中
JAVA多執行緒之Runnable和Thread比較
在我們開發的過程中常常會碰到多執行緒的問題,對於多執行緒的實現方式主要有兩種 實現runnable介面 繼承thread類。對於這兩種多執行緒的實現方式也是有著一些差異。既然實現了多執行緒那必然離不開管理這些執行緒,當問題比簡單時乙個或者幾個執行緒就ok了,也涉及不到效率問題。一旦執行緒數量多起來的...
多執行緒二(Runnable介面)
建立執行緒的第二種方式 實現runable介面 步驟 1.定義類實現runnable介面。2.覆蓋runnable 中的run方法。將執行緒要執行的 存放在run方法中。3.通過thread類建立執行緒物件。4.將runnable介面的子類物件作為實際引數傳遞給thread類的建構函式。自定義的ru...
多執行緒(三) Runnable介面
runnable與thread的關係 1.thread是乙個類,runnable是乙個介面。thread實現了runnable這個介面。2.實現runnable介面可以避免thread單繼承的缺陷。因為當乙個類已經繼承乙個父類了,它還要實現多執行緒的功能,這個時候runnable就可以解決這種情況。...