一: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資料夾裡看...