Thread原始碼 類結構及變數含義

2021-08-21 07:11:17 字數 1220 閱讀 5934

環境: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...