關于兩種方法創建線程的不同
學到現在 我有一點不是很明白 ? 用Runnable接口和Thread類創建線程貌似可以得到相同運行結果,那到底這兩種方法有什么不同呢?或者說用Runnable接口創建的線程是不是都可以用Thread來創建?希望有某位大神可以為我解答這個問題
學到現在 我有一點不是很明白 ? 用Runnable接口和Thread類創建線程貌似可以得到相同運行結果,那到底這兩種方法有什么不同呢?或者說用Runnable接口創建的線程是不是都可以用Thread來創建?希望有某位大神可以為我解答這個問題
2015-12-22
舉報
2015-12-23
第一:創建線程只有繼承Thread類和實現Runnable接口兩種方式(Thread也是實現了Runnable接口);
第二:若以繼承Thread類方式創建線程則這個類的實例就可以重寫Thread類的幾十個方法,注意是好幾十個方法;
第三:若以實現Runnable接口的方式創建線程則僅僅只有一個run()方法可供重寫;注意是只有一個;
? ??實現Runnable接口創建的線程最終還是要通過將自身實例作為參數傳遞給Thread然后執行,當你要為一個沒有繼承Thread類的類創建線程,而且只想讓這個類的實例調用run方法執行任務,這時候Runnable接口就相當于為你的目標類提供了一個激活方式,設計該接口的目的是為了那些希望在激活時執行代碼的對象提供一個公共協議,激活的意思是說某個線程已啟動并且尚未停止。?
? ?
2015-12-23
這兩種創建線程的方法本身沒有什么不同,一個是實現Runnable接口,一個是繼承Thread類。而使用實現Runnable接口這種方法:1.可以避免Java的單繼承的特性帶來的局限性;2.適合多個相同程序的代碼去處理同一個資源的情況,把線程同程序的代碼及數據有效分離,較好地體現了面向對象的設計思想。開發中大多情況下都使用實現Runnable接口這種方法創建線程。