環境:jdk1.8
thread類結構:
public class thread implements runnable
可以看出:
1.thread是基於runnable實現,實現了run方法
thread類變數:
//執行緒名稱,用volatitle修飾,保證其可見性
private volatile string name;
//執行緒優先順序,值:1-10,預設為5,值越大,優先順序越高
private int priority;
//是否是守護執行緒,預設為false
private boolean daemon = false;
//runnable例項,在thread實現的run方法中呼叫了該例項的run方法
private runnable target;
//執行緒組
private threadgroup group;
//類的上下文載入器
private classloader contextclassloader;
//接入控制器,用於做許可權控制
private accesscontrolcontext inheritedaccesscontrolcontext;
//執行緒初始編號,用於為執行緒進行命名,一般名稱為thread-執行緒編號
private static int threadinitnumber;
//棧大小
private long stacksize;
//執行緒id
private long tid;
//用於計算執行緒id的乙個變數
private static long threadseqnumber;
//用於表示執行緒狀態,0值表示"new"即未啟動狀態
private volatile int threadstatus = 0;
//用於處理中斷
private volatile interruptible blocker;
//執行緒最小優先順序、預設優先順序、最大優先順序
public final static int min_priority = 1;
public final static int norm_priority = 5;
public final static int max_priority = 10;
Thread類原始碼分析
thread狀態 thread內部有個state列舉,標示著執行緒的狀態。public enum state構造方法 建構函式及其幾個相關的成員變數 帶目標run物件.private runnable target 執行緒組 private threadgroup group 此執行緒的類載入器 p...
Thread 類的原始碼相關
注意 run 方法存在於thread類 和 runnable 介面中 理解以下三種情況 定義乙個類繼承 thread 類,並重新了覆寫 run 方法,原先的 run方法就被子類的 run 方法覆蓋掉了,thread 類run 方法中的 target.run 就不可能執行了,執行緒物件 start 是...
Thread原始碼問題練習
public static void main string args start a 輸出的是 thread匿名子類的run方法 b thread中呼叫runnable介面覆寫的run方法的方法,被override了,使得thread的start方法轉而呼叫thread匿名內部類 子類 中覆寫的r...