1. 程式人生 > >java併發-問題-為啥我們覆寫了run方法,卻要呼叫start方法?

java併發-問題-為啥我們覆寫了run方法,卻要呼叫start方法?


汪老師很有講課很有水平,講的非常清晰而且常常會帶入一些非常重要的知識,建議大家都去聽下,比在QQ群推薦的公開課強的不是一點兩點

我們在啟動一個執行緒時
繼承Thread 覆寫了run方法
但是最後我們卻要調start方法才能啟動執行緒

這裡實際上涉及到兩種設計模式(模板方法,策略模式)

一.模板方法(具體可看)
  我們通過子類來實現父類某些不確定的邏輯!
這裡Thread無法確定run的業務邏輯,但是可以確定與業務無關邏輯(比如啟動執行緒),所以run其實是一個給我們覆寫的方法,我們通過覆寫run來實現自己的業務邏輯!

二.策略模式(具體可看)
  我們通過定義一個策略介面和一組實現類,可以更優雅的切換演算法的某些邏輯,這裡我們可以僅僅改變Runnable的實現類,就可以切換業務邏輯