注意:run 方法存在於thread類 和 runnable 介面中**
理解以下三種情況:
定義乙個類繼承 thread 類,並重新了覆寫 run 方法,原先的 run方法就被子類的 run 方法覆蓋掉了,
thread 類run 方法中的 target.run() 就不可能執行了,執行緒物件 start 是 重寫後 的 run 方法內容;
如果runnable 子類例項化的物件,重寫它的run方法,(此處run方法不是thread中的,而是runnable介面自己的抽象run方法),執行緒物件start() 的是 runnable子類中重寫的run()方法;
如果在thread的引數入口中傳入 runnable的子類例項化物件後,又在thread中重寫了run() 方法,則執行緒物件start() 呼叫的是thread類中重寫的run()方法;
public
class
demo01}/*
* 定義實現 runnable 介面的子類
* 第二實現方方式
* */
class
myrunnable
implements
runnable}/*
* 第一種實現方式
* */
class
mythread
extends
thread
}
Thread類原始碼分析
thread狀態 thread內部有個state列舉,標示著執行緒的狀態。public enum state構造方法 建構函式及其幾個相關的成員變數 帶目標run物件.private runnable target 執行緒組 private threadgroup group 此執行緒的類載入器 p...
Thread原始碼 類結構及變數含義
環境 jdk1.8 thread類結構 public class thread implements runnable 可以看出 1.thread是基於runnable實現,實現了run方法 thread類變數 執行緒名稱,用volatitle修飾,保證其可見性 private volatile s...
Thread原始碼問題練習
public static void main string args start a 輸出的是 thread匿名子類的run方法 b thread中呼叫runnable介面覆寫的run方法的方法,被override了,使得thread的start方法轉而呼叫thread匿名內部類 子類 中覆寫的r...