java併發程式設計基礎 執行緒狀態及相互轉換

2021-09-11 02:04:00 字數 798 閱讀 6740

1)thread原始碼state,篇幅所限,就省略部分注釋

2)轉態解釋

初始(new):新建立了乙個執行緒物件,但還沒有呼叫start()方法。

執行(runnable):處於可執行狀態的執行緒正在jvm中執行,但它可能正在等待來自作業系統的其他資源,例如處理器。

阻塞(blocked):執行緒阻塞於synchronized鎖,等待獲取synchronized鎖的狀態。

等待(waiting):object.wait()、join()、 locksupport.park(),進入該狀態的執行緒需要等待其他執行緒做出一些特定動作(通知或中斷)。

超時等待(time_waiting):object.wait(long)、thread.join()、locksupport.parknanos()、locksupport.parkuntil,該狀態不同於waiting,它可以在指定的時間內自行返回。

終止(terminated):表示該執行緒已經執行完畢。

Java併發基礎 執行緒狀態及轉換

每個執行緒都有狀態,表示當前的執行緒是否在執行或者是等待某些事情的發生等。本文先對執行緒的幾個狀態進行解釋,然後再說明執行緒如何在這幾個狀態之間跳轉。作業系統在實際執行過程中,可能有很多個執行緒一直同時在執行。相對單個cpu來說,同一時間執行的執行緒數只能有乙個。但如果所有執行緒都排隊等待上一線程處...

Java併發程式設計 執行緒的基本狀態

執行緒基本上有5種狀態,分別是 new runnable running blocked dead。當執行緒物件對建立後,即進入了新建狀態,如 thread t new mythread 當呼叫執行緒物件的start 方法 t.start 執行緒即進入就緒狀態。處於就緒狀態的執行緒,只是說明此執行緒...

Java併發程式設計 執行緒的狀態和執行緒的建立

執行緒的狀態 新建狀態 new 新建立了乙個執行緒物件。就緒狀態 runnable 執行緒物件建立後,其他執行緒呼叫了該物件的start 方法。該狀態的執行緒位於 可執行執行緒池 中,變得可執行,只等待獲取cpu的使用權。即在就緒狀態的程序除cpu之外,其它的執行所需資源都已全部獲得。執行狀態 ru...