[英]What is the LifeCycle of Thread in Java?
在Java中,當我們創建線程對象時
Thread t1 = new Thread(Runnable object);
t1.start();
什么是主題的生命周期的不同階段t1
和執行后run()
將狀態t1
?
線程在其生命周期中會經歷各個階段。 例如,線程是先生,啟動,運行然后死亡的。 下圖顯示了線程的完整生命周期。
Java線程上面介紹了上述階段:
New:
新線程以新狀態開始其生命周期。 它將保持這種狀態,直到程序啟動線程為止。 它也稱為出生線程。
Runnable
:一個剛出生的線程啟動后,該線程進入可運行狀態。 處於此狀態的線程被視為正在執行其任務。
Waiting:
有時,當一個線程等待另一個線程執行任務時,一個線程會轉換為等待狀態。只有當另一個線程發出信號等待線程繼續執行時,一個線程才會轉換回可運行狀態。
Timed waiting:
可運行線程可以在指定的時間間隔內進入定時等待狀態。 當該時間間隔到期或發生等待事件時,處於此狀態的線程將轉換回可運行狀態。
Terminated ( Dead )
:可運行線程在完成其任務或終止時進入終止狀態。
來源: http : //www.tutorialspoint.com/java/java_multithreading.htm
線程可以處於以下狀態之一 :
NEW :
尚未啟動的線程處於此狀態。
RUNNABLE :
在Java虛擬機中執行的線程處於此狀態。
BLOCKED:
處於阻塞狀態的線程正在等待監視器鎖定,以在輸入Object.wait
之后輸入同步塊/方法或重新輸入synchronized
塊/方法。
WAITING:
無限期等待另一個線程執行特定操作的線程處於此狀態。
由於調用以下方法之一,線程處於等待狀態:
Object.wait with no timeout
Thread.join with no timeout
LockSupport.park
TIMED_WAITING:
正在等待另一個線程執行操作的線程最多達到指定的等待時間,該線程處於此狀態。
由於以指定的正等待時間調用以下方法之一,因此線程處於定時等待狀態:
Thread.sleep
Object.wait with timeout
Thread.join with timeout
LockSupport.parkNanos
LockSupport.parkUntil
TERMINATED:
退出的線程處於此狀態。
請參閱pramodbablad的本文以了解此圖中的各種狀態
在上圖中,除了RUNNING
(已顯示為圓圈)之外,所有其他矩形塊均表示各種thread states
。
線程狀態:
線程也可以具有等待,定時等待和阻塞狀態
有關更多信息,請參見此處: https : //docs.oracle.com/javase/7/docs/api/java/lang/Thread.State.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.