線程類據說與可運行接口具有「IS-a」關係以及「有-α」關係。擁有這兩者的好處是什麼?有關多線程的問題
爲什麼我們優先考慮「有-A」關係?
有關多線程的問題
回答
有這兩種方法有什麼好處?
這是一個糟糕的設計選擇,國際海事組織。如果要避免Thread
首先執行Runnable
會更清晰。這導致了各種錯誤(通過堆棧溢出問題見證),人們在Thread
上調用run
而不是start
。
爲什麼我們優先考慮「有-A」關係?
構圖通常比繼承更靈活。例如,如果創建Runnable
實現,則可以將其傳遞給ExecutorService
而不是Thread
。你並沒有將自己與執行該操作的特定方式掛鉤 - 你只是說「這是我想運行的代碼」。
關於調用使用run()代替start()的人一個設計錯誤:好吧,這是一個設計錯誤,但這不是原因;唯一真正的問題是人們拒絕閱讀文檔。 – Gimby
@Gimby:我不同意。是的,這個錯誤顯然是沒有閱讀文檔的人的一部分 - 但是一個設計良好的API很容易使用,很難很好地使用。情況並非如此。僅僅因爲文檔說會發生什麼並不意味着它是一個乾淨的API。以'java.util.Calendar'爲例:它的所有醜陋事件都有記錄,但Joda Time仍然是一個更好的API,儘管這不是全面的文檔。 –
- 1. 關於集合的多線程問題
- 2. 關於多線程和EntityManager的問題
- 3. 有關線程的兩個問題
- 4. C#,有關線程池的問題
- 5. 多線程狀態相關問題
- 6. 關於線程的問題
- 7. 關於線程的問題
- 8. 關閉線程的問題
- 9. 多線程問題
- 10. 多線程問題
- 11. 多線程問題
- 12. 多線程問題
- 13. 多線程問題
- 14. 多線程問題
- 15. 多線程問題
- 16. 多線程問題
- 17. 有關Python中的多線程方法的架構問題
- 18. 有關調用,調用和多線程的C#問題
- 19. 的java多線程問題
- 20. NHibernate的多線程問題
- 21. FMDB的多線程問題
- 22. 多線程的Java問題
- 23. Python - 問題關閉線程
- 24. Android多線程SpeedTest有性能問題
- 25. opm多線程有什麼問題?
- 26. 問題有關線高度:
- 27. 多線程線程切換問題
- 28. 有關多播的問題
- 29. 關於linux內存問題的C++多線程程序
- 30. Java多線程問題
你從哪裏聽到這個消息? – 2014-02-10 09:55:26
線程類實現了runnable,因此它有一個關係,並且在它的構造函數中有一個接口的引用因此具有一個關係。 – user3239652
@LutzHorn - 當然是分配問題。 –