課程
/后端開發
/Java
/深入淺出Java多線程
哪種更好一點呢?
2017-12-29
源自:深入淺出Java多線程 2-3
正在回答
如果都繼承了Thread類的前提下,兩種方式都可以創建一個線程對象,一般我們是使用第一種方式來創建線程對象(向上造型);PS:你的第二種方式是調用run方法,比不是讓線程進入就緒狀態(start());
栗喵 提問者
補充:如果你的Actor類繼承了Thread類
第一種是向上造型(父類Thread引用子類Actor的對象),這種情況下不能通過此對象訪問子類內部的方法(除了重寫的父類的方法外)、變量等內容;所以說如果你在Actor類內部還有run方法以外的其他東西,通過此對象是無法訪問的;
第二種,非向上造型,可以訪問父類Thread的所有非私有方法及本類Actor內的所有內容;
總結:兩種方式不完全相同,訪問權限不一致,如果你在Actor類內部只有run方法推薦使用方式一,如果你還需要訪問其他方法及變量只能使用方式二;
推薦參考:http://blog.csdn.net/shf4715/article/details/46848083
舉報
帶你一起深入淺出多線程,掌握基礎,展望進階路線
3 回答Thread actor=new Thread(new Actor(),"Mr.Thread");
3 回答Thread actor=new Actor(); 這怎么理解?
1 回答Actress類沒有繼承Thread類,為什么可以直接將new的對象傳到Thread類中并調用
2 回答actor的聲明
4 回答thread類里new一個Actress為什么會報錯
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-12-30
如果都繼承了Thread類的前提下,兩種方式都可以創建一個線程對象,一般我們是使用第一種方式來創建線程對象(向上造型);PS:你的第二種方式是調用run方法,比不是讓線程進入就緒狀態(start());
2017-12-30
補充:如果你的Actor類繼承了Thread類
第一種是向上造型(父類Thread引用子類Actor的對象),這種情況下不能通過此對象訪問子類內部的方法(除了重寫的父類的方法外)、變量等內容;所以說如果你在Actor類內部還有run方法以外的其他東西,通過此對象是無法訪問的;
第二種,非向上造型,可以訪問父類Thread的所有非私有方法及本類Actor內的所有內容;
總結:兩種方式不完全相同,訪問權限不一致,如果你在Actor類內部只有run方法推薦使用方式一,如果你還需要訪問其他方法及變量只能使用方式二;
推薦參考:http://blog.csdn.net/shf4715/article/details/46848083