2014-05-23 88 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”这个词。 –