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