public class AliveAndJoin {
public static void main(String[] args) {
// TODO 自动生成的方法存根
MyThread mt=new MyThread("线程MyThread");//创建MyThread
System.out.println("..............");
System.out.println("线程MyThread 是否处于运行状态:"+mt.t.isAlive());//查看线程的状态,判断程序是否处于运行状态
try{//等待线程结束
System.out.println("..............");
System.out.println("等待线程结束...");
mt.t.join();
}
catch(InterruptedException e){
System.out.println("出现错误,线程中断!");
}
System.out.println(".............");
System.out.println("线程MyThread 是否处于运行状态:"+mt.t.isAlive());//查看线程的状态,判断程序是否处于运行状态
System.out.println("..............");
System.out.println("线程在退出.....");
}
}
class MyThread implements Runnable{//实现Runnable接口
String name;
Thread t;
MyThread(String th){
name=th;
t=new Thread(this,th);//创建属于类Thread的线程对象
System.out.println("创建线程"+th);
t.start();//启动线程
}
public void run(){//重启方法run(),线程休眠一段时间后退出
try{
Thread.sleep(1000);
}
catch(InterruptedException e){
System.out.println(name+" 中断");
}
System.out.println("................");
System.out.println(name+"在退出...");
}
}
运行结果
分析:这个程序在主线程中展示了线程MyThread的创建、启动、运行和结束状态,并通过is Alive()实时查看线程的运行状态。
线程具有5个状态:新建(New Thread)、就绪(Runnable)、运行(Runing)、堵塞(Blocked)、死亡(Dead)。
心得:通过学习这个程序,知道了线程的五个状态,同时知道五个状态之间可以从一种状态改变到另一种状态。