* 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);
}
}
}