Thread
線程
線程
- 操做系統調度的最小單元,線程有本身獨立的計數器,堆棧和局部變量表,而且可以訪問共享的內存變量。
線程的狀態
NEW
被建立,沒有調用start();
RUNABLE
運行狀態,Java線程將操做系統中就緒和正在運行2種狀態籠統的稱做運行中
BLOCKED
阻塞狀態,表示線程阻塞於鎖
WAITING
等待狀態,表示線程進入等待狀態,進入該狀態表示當前線程須要等待其餘線程作出一些特定動做(通知或中斷)
TIME_WAITING
超時等待狀態,該狀態不一樣於WAITING,它是能夠在指定時間內自行返回的。
TERMINATED
終止狀態,表示當前線程已經執行完畢。
tips
synchronized
用jstack打出日誌,線程處於BLOCKED
狀態,而Lock接口的鎖會處於等待狀態,由於concurrnet包中Lock實現了LockSupport
類中的相關方法。詳情見後
daemon 線程
theadlocal
- 線程變量,一Threadlocal對象爲鍵,任意對象爲值的存儲結構,這個結構被附帶在線程上,每一個線程能夠根據一個Theadlocal對象查詢到綁定在這個線程上的一個值。
舉例
,同一線程,可跨方法或類共用線程變量。
歡迎關注本站公眾號,獲取更多信息