2014-05-23 110 views
1

我創建使用線程在java中還活着多久?

Thread t = new Thread(); 
t.start(); 

您使用t.start啓動一個線程()線程; 現在線程還活着多久? 在X(上述問題的答案)秒之後它會走到什麼狀態?

Thread t = new Thread(); 
t.start(); 
public void run(){ 
    System.out.println("Threads"); 
} 

如果線程有run()方法會發生什麼?

+2

該線程是一個壞例子,因爲它不執行任何操作,即。它執行的'run()'的主體是空的。它會馬上開始並結束。 –

+1

[**如何在Google **上進行搜索](https://support.google.com/websearch/answer/134479?hl=zh-CN) –

+0

您的線程沒有做任何事情,所以答案歸結爲調度延遲。一個需要真正做某件事情的線程會一直存在,直到其工作完成。 – user2357112

回答

2

只要空的Thread.run()方法不做任何事情並返回,就會按照您描述的方式創建和啓動的線程將處於活動狀態。當線程終止時,t.isAlive()函數將返回false

通常情況下,一個線程會做一些有用的事情,只要run()方法沒有返回,該線程就會存活。

+0

那麼運行run方法後線程狀態會死掉嗎? – Siva

+1

如果你具體詢問'Thread.getState()'的返回值,那麼它將返回'Thread.State.TERMINATED'。 Java在引用線程狀態時不使用「dead」這個詞。 –