java執行緒狀態 原始碼淺看

2021-09-24 11:44:33 字數 1160 閱讀 1188

一:thread概念

執行緒是作業系統能夠進行運算排程的最小單位 代表了一條順序的執行流

二:thread流程

1 切換過程

執行緒狀態 new  runnable blocked waiting time_waiting terminated

流轉圖

每種狀態切換 原始碼上也已經顯示很清楚了

new

/***jvm中的執行態 但是系統層可能在等待作業系統分配資源

*/runnable,

/***1 waiting for a monitor lock to enter a synchronized block/method

* 2 object.wait ()呼叫後 通過notify、notifyall 進入blocked狀態 因為object.wait ()是在同步塊中

*/blocked,

/*** object.wait()

* thread.join()

* locksupport.park()

*/waiting,

/*** thread.sleep(xx)

* object.wait(xx)

* thread.join(xx)

* locksupport.parknanos

* parkuntil locksupport.parkuntil

*/timed_waiting,

terminated;

2 主動排程方法

start():啟動執行緒

wait():釋放資源,讓出cpu

sleep() :不釋放資源,讓出cpu

join():序列執行執行緒

yield():讓出cpu資源可能立刻獲得資源執行 不是立即能產生效果

notify():喚醒乙個執行緒

nnotifyall():喚醒所有執行緒

stop():廢棄

原始碼看JAVA 二 String類

1 儲存,char字元陣列 private final char value 2 初始化與複製 可見建立string是傳遞物件的引用,char拷貝陣列的值 public string string original public string char value public string cha...

原始碼看JAVA 三十九 Deque

deque是雙向佇列,包含queue的全部功能,同時新增了雙向佇列的特有實現 1 在第乙個元素前新增元素 新增失敗丟擲異常 void addfirst e e 2 在最後的位置新增元素 新增失敗丟擲異常 void addlast e e 3 呼叫addfirst方法,新增成功返回true,否則丟擲異...

看QtDesigner原始碼

畢業有一年半了,很早就想著寫部落格,可是水平有限,表達能力也差好多,但是現在總結來說,好多東西都忘了,浪費了好多時間,所以開始寫東西吧。1.pro檔案檢視專案構成 template subdirs config qt subdirs src 樣板 模板 型板 就是乙個模板,然後我在data資料夾裡看...