java多线程

黑马程序员_java多线程---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a><a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------

线程死亡

线程会以以下三种方式之一结束,结束后就处于死亡状态:

run()方法执行完成,线程正常结束。

线程抛出一个未捕获的ExceptionError

直接调用该线程的stop()方法来结束改线程——该方法容易导致死锁。通常不推荐使用为了测试某条线程是否已经死亡,可以调用线程对象的isAlive()方法,当线程处于就绪,运行,阻塞三种状态时,该方法将返回真,当线程处于新建,死亡两种状态时该方法将返回假

不要试图对一个已死亡的线程调用start()方法使他重新启动,死亡就是死亡,改线程将不可再次做为线程执行

public class C extends Thread

{

private int i;

pulbic void run()

{

for(;i<100;i++)

{

System.out.println(getName()+" "+i );

}

}

public static void main(Strint[] args)

{

C c=new C();

for(int i=0;i<300;i++)

{

System.out.println(Theead.currentThread().getName()+" "+i);

if(i=20)

{

c.start();

System.out.println(c.isAlive());

}

if(i>20) && !c.isAlive())

{

c.start();

}

}

}

}

上面程序中粗体字代码试图在线程已死亡的情况下再次调用start()方法来启动该线程,运行上面的程序将引发IllegalThreadStateExceptin异常,这表明死亡状态的线程无法再次运行了。---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a><a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值