目录
1. 线程ID
ID是线程的唯一标识,不同线程不会重复
System.out.println("线程ID:" + t.getId());
2. 线程名称
名称是各种调试⼯具⽤到
System.out.println("线程名称:" + t.getName());
3. 线程状态
状态表示线程当前所处的⼀个情况
System.out.println("线程状态: " + thread.getState());
public class ThreadDemo13 {
public static void main(String[] args) throws InterruptedException {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
//拿到当前线程,并打印线程状态
Thread thread = Thread.currentThread();
System.out.println("线程状态2: " + thread.getState());
}
});
//打印线程状态
System.out.println("线程状态: " + t.getState());
t.start();
//再次打印线程状态
Thread.sleep(500);
System.out.println("线程状态3: " + t.getState());
}
}
4. 线程优先级
线程创建之后优先级就存在了。
优先级是int类型值,默认的优先级是5。线程的优先级1 - 10 ,最高的优先级是10 , 默认的优先级是 5 。
注意事项:
同时启动多个线程,多个线程设置了不同的优先级,并不是优先级最高的就一定先执行,而是高优先级的线程获取到CPU时间片的概率更多,整个的执行大支付和高优先级的线程最先执行完的。
public class ThreadDemo14 {
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
//得到当前线程的状态
Thread t = Thread.currentThread();
//打印线程id
System.out.println(t.getName() + "线程id:" + t.getName());
//打印线程名称
System.out.println(t.getName() + "线程name:" + t.getName());
//打印线程优先级
System.out.println(t.getName() + "线程priority:" + t.getPriority());
}
};
Thread thread1 = new Thread(runnable,"线程1");
thread1.start();
Thread thread2 = new Thread(runnable,"线程2");
thread2.start();
Thread thread3 = new Thread(runnable,"线程3");
thread3.start();
}
}
5. 是否守护线程
关于守护线程(后台线程),需要记住⼀点:JVM会在⼀个进程的所有⾮后台线程结束后,
才会结束运⾏。
6. 是否存活
是否存活,即简单的理解,为 run ⽅法是否运⾏结束了