創建線程的第二種方式:實現Runnable接口
步驟:
1,定義類實現Runnable接口。
2,覆蓋Runnable接口中的run方法。
將線程要運行的代碼存放在該run方法中。
3,通過Thread類建立線程對象。
4,將Runnable接口的子類對象作為實際參數傳遞給Thread類的構造函數。
為什么要將Runnable接口的子類對象傳遞給Thread的構造函數?
因為,自定義的run方法所屬的對象是Runnable接口的子類對象。
所以要讓線程去指定對象的run方法,就必須明確該run方法所屬對象。
5,調用Thread類的start方法開啟線程并調用Runnable接口子類的run方法。
實現方式和繼承方式有什么區別?(面試經常考)
實現方式好處在于,避免了單繼承的局限性。
在定義線程時,建議使用實現方式。
兩者的區別:
繼承Thread:線程代碼存放在Thread子類run方法中。
實現Runnable,線程代碼存放在接口的子類run方法。