Thread

線程

線程

  • 操做系統調度的最小單元,線程有本身獨立的計數器,堆棧和局部變量表,而且可以訪問共享的內存變量。

線程的狀態

  • NEW 被建立,沒有調用start();
  • RUNABLE 運行狀態,Java線程將操做系統中就緒和正在運行2種狀態籠統的稱做運行中
  • BLOCKED 阻塞狀態,表示線程阻塞於鎖
  • WAITING 等待狀態,表示線程進入等待狀態,進入該狀態表示當前線程須要等待其餘線程作出一些特定動做(通知或中斷)
  • TIME_WAITING 超時等待狀態,該狀態不一樣於WAITING,它是能夠在指定時間內自行返回的。
  • TERMINATED 終止狀態,表示當前線程已經執行完畢。

tips

  • synchronized 用jstack打出日誌,線程處於BLOCKED狀態,而Lock接口的鎖會處於等待狀態,由於concurrnet包中Lock實現了LockSupport 類中的相關方法。詳情見後

daemon 線程

theadlocal

  • 線程變量,一Threadlocal對象爲鍵,任意對象爲值的存儲結構,這個結構被附帶在線程上,每一個線程能夠根據一個Theadlocal對象查詢到綁定在這個線程上的一個值。
  • 舉例,同一線程,可跨方法或類共用線程變量。
相關文章
相關標籤/搜索