Thread的常见属性
1.每个ID都代表一个现场,ID是唯一的!
2.名称就是顾名思义的线程名称
3.状态为线程运行过程中的状态 getState()方法可以获取以下状态
(1)NEW(新建)
(2)RUNNABLE(可运行状态)
(3)BLOCKED (阻塞状态 => 由于锁竞争产生的状态)
(4)WAITING (不带时间阻塞 => join / wait)
(5)TIMED_WAITING (带时间阻塞 => sleep)
(6)TERMINATED (终止状态)
4.是否存活是指PCD(线程)是否存在
[代码展示]
public class ThreadDemo6 {
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(()->{
System.out.println("这是一个线程!");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
},"线程一");
System.out.println("获取线程的ID: " + thread.getId());//获取线程ID
System.out.println("获取线程名称: " + thread.getName());//获取线程名称
System.out.println("当前线程状态: " + thread.getState()); //NEW代表线程新建
System.out.println("当前线程状态: " + thread.isAlive()); //false代表PCD(线程)没有存在
thread.start();
System.out.println("当前线程状态: " + thread.getState());//RUNNABLE代表线程还在运行
System.out.println("当前线程状态: " + thread.isAlive());//true代表PCD(线程)存在
Thread.sleep(2000);
System.out.println("当前线程状态: " + thread.getState());//TERMINATED代表线程结束
System.out.println("当前线程状态: " + thread.isAlive());
}
}
[代码结果]
5.优先级是指在多线程环境中,通过给线程分配不同的优先级来决定线程获取CPU时间片的顺序.
6.是否是前台线程是通过 setDaemon()方法设置为 true(后台线程) false(前台线程)
isDaemon()方法来进行判断
前台线程 : 会阻止进程的结束
后台线程 : 不会阻止进程的结束