线程状态分类

在线程的生命周期中,他是可以分成好几个状态的:

新建状态(new):用new语句创建的线程对象就是新建状态,此时他和其他的对象是没有差别的,仅仅是被分配了内存。

就绪状态(Runable):当调用他的start()方法的时候,这个线程就进入了就绪状态,处于这个状态的线程就等待着获得他的CPU使用权。

运行状态(Running):处于这个状态的线程占用着CPU,并且执行程序代码。只有处于就绪状态的线程才有机会进入到运行状态。

阻塞状态:当线程处于阻塞状态的时候不会被分配CPU的,只有当线程重新进入就绪状态,它擦有机会转到运行状态。

死亡状态:当线程退出run()方法的时候,就结束了生命周期,即进入了死亡状态。不管线程是正常结束还是异常结束,都不会对其他的线程造成影响。

package thread1;

public class machine extends Thread{
	public void run()
	{
		for(int a=0;a<3;a++)
		{
		System.out.println(currentThread().getName()+":"+a);
		if(a==1&¤tThread().getName().equals("m1"))
			throw new RuntimeException("Wrong from machine");
		try
		{
			sleep(100);
			
		}catch(InterruptedException e){throw new RuntimeException(e);}
	}
	}
	public static void main(String[] args) {
		machine machine1 = new machine();
		machine1.setName("m1");
		machine1.start();
		machine1.run();
		System.out.println("Is machine alive:"+machine1.isAlive());
		System.out.println("main:end");
	}
}


Thread累的isAlive()方法就是判断一个线程是否存活,如果处于死亡状态的时候,就返回false,否则返回true。

在这个例子中国,machine线程在运行的时候抛出了异常,从而结束了声明周期,但是此时主线程仍然正常运行直至结束。



下一次开始线程调度。这几天太忙了,都周末了。。早晨还要早起爬起来上党课。中午有院赛,下午接着党课。明天上午上党课,下午大学语文。。感觉头都要炸了。。我要回寝室休息去了。。感觉整个人都不好了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值