JAVA中线程守护和线程的声明周期

* public final void setDaemon(boolean on)
 * 将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时,Java 虚拟机退出。 
   该方法必须在启动线程前调用。 
    形式参数为true,就是守护线程
    形式参数为true,就是守护线程
    State:是Thread类的内部枚举类 
    
    面试题:
 *         线程有几种状态? 6个状态
 * 新建  就绪(有线程对象了,但是没有CPU的执行权--->抢占到CPU执行权,再去执行--->线程死亡
 * new <--->Runnable----> TERMINATED;
 * 
 *枚举类中自定义常量
 *public enum State {
  
        新建状态
        NEW,----->等价  public static final ....;

        //线程就绪(等待执行)
        RUNNABLE,
        //线程阻塞(线程睡眠...)
        BLOCKED,

       //线程等待中 (线程在执行期间,利用wait()方法)
        //死死等待
        WAITING,
        
        //超时等待(超过一定时间,然后等待结束)
        TIMED_WAITING,

      //线程死亡
        TERMINATED;    
    }

public class ThreadDemo {
	//主线程(用户线程)
		public static void main(String[] args) {
			
			//创建线程类对象
			ThreadDeamon td1 = new ThreadDeamon() ;
			ThreadDeamon td2 = new ThreadDeamon() ;
			td1.setName("关羽");
			td2.setName("张飞");
			
			//将td1和td2,设置为守护线程
			td1.setDaemon(true); 
			td2.setDaemon(true); 
			
			//启动线程
			td1.start();
			td2.start();
			
			//public static Thread currentThread():获取当前正在执行的线程
			//测试
			Thread.currentThread().setName("刘备");
		//	System.out.println(Thread.currentThread().getName());//main "主线程"
			//循环
			for(int x = 0 ; x < 5 ; x ++) {
				System.out.println(Thread.currentThread().getName()+":"+x);
			}
	}
}
public class ThreadDeamon extends Thread {
	@Override
	public void run() {
		for(int x=0;x<800;x++) {
			System.out.println(this.getName()+" "+x);
		}
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值