亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于兩種方法創建線程的不同


學到現在 我有一點不是很明白 ? 用Runnable接口和Thread類創建線程貌似可以得到相同運行結果,那到底這兩種方法有什么不同呢?或者說用Runnable接口創建的線程是不是都可以用Thread來創建?希望有某位大神可以為我解答這個問題

正在回答

2 回答

第一:創建線程只有繼承Thread類和實現Runnable接口兩種方式(Thread也是實現了Runnable接口);

第二:若以繼承Thread類方式創建線程則這個類的實例就可以重寫Thread類的幾十個方法,注意是好幾十個方法;

第三:若以實現Runnable接口的方式創建線程則僅僅只有一個run()方法可供重寫;注意是只有一個;

? ??實現Runnable接口創建的線程最終還是要通過將自身實例作為參數傳遞給Thread然后執行,當你要為一個沒有繼承Thread類的類創建線程,而且只想讓這個類的實例調用run方法執行任務,這時候Runnable接口就相當于為你的目標類提供了一個激活方式,設計該接口的目的是為了那些希望在激活時執行代碼的對象提供一個公共協議,激活的意思是說某個線程已啟動并且尚未停止。?

? ?


5 回復 有任何疑惑可以回復我~
#1

hongchun 提問者

多謝!
2015-12-23 回復 有任何疑惑可以回復我~
#2

hongchun 提問者

我再多問一句,你的意思就是 在某些情況下,也就是沒有類繼承Thread類的時候,也是可以直接用Runnable接口來直接實現線程的創建 是么?
2015-12-23 回復 有任何疑惑可以回復我~
#3

是王小二呀 回復 hongchun 提問者

對,<1>.實現Runnable接口<2>.將這個類的實例對象傳遞給Thread,此時線程在沒有繼承Thread類的情況下創建完畢
2015-12-23 回復 有任何疑惑可以回復我~
#4

hongchun 提問者 回復 是王小二呀

謝謝 謝謝 我理解了
2015-12-24 回復 有任何疑惑可以回復我~
查看1條回復

這兩種創建線程的方法本身沒有什么不同,一個是實現Runnable接口,一個是繼承Thread類。而使用實現Runnable接口這種方法:1.可以避免Java的單繼承的特性帶來的局限性;2.適合多個相同程序的代碼去處理同一個資源的情況,把線程同程序的代碼及數據有效分離,較好地體現了面向對象的設計思想。開發中大多情況下都使用實現Runnable接口這種方法創建線程。

3 回復 有任何疑惑可以回復我~
#1

hongchun 提問者

多謝!
2015-12-23 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于兩種方法創建線程的不同

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號