目录
一、Thread 的几个常见属性
Thread 类是 JVM 用来管理线程的一个类,换句话说,每个线程都有一个唯一的 Thread 对象与之关联。
Java中创建线程
显示继承Thread,重写run方法来指定线程执行的代码
匿名内部类来继承Thread,重写run方法来指定线程执行的代码
显示实现Runnable接口,重写run方法
匿名内部类来继承Runnable接口,重写run方法
通过lambda表达式来描述执行的代码
属性 | 获取方法 |
ID | getId() |
名称 | getNmame() |
状态 | getState() |
优先级 | getPriority() |
是否后台线程 | isDaemon() |
是否存活 | isAlive() |
是否被中断 | isInterrupted() |
ID 是线程的唯一标识,不同线程不会重复
名称是各种调试工具用到 状态表示线程当前所处的一个情况,下面我们会进一步说明
优先级高的线程理论上来说更容易被调度到
关于后台线程,需要记住一点:JVM会在一个进程的所有非后台线程结束后,才会结束运行。
是否存活,即简单的理解,为 run 方法是否运行结束了
线程的中断问题,下面我们进一步说明
public static void main(String[] args) throws InterruptedException {
Thread t = new Thread("123"){
@Override
public void run() {
for (int i = 0; i < 10; i++){
System.out.println(Thread.currentThread().getName());
try{
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("线程退出");
}
};
//这一组属性,线程创建完成后,属性就不变了
System.out.println(t.getName());
System.out.println(t.getPriority());
System.out.println(t.isDaemon());
System.out.println(t.getId());
//这组属性会随着线程的运行而开始改变
System.out.println(t.isAlive());
System.out.println(t.isInterrupted());
System.out.println(t.getState());
t.start();
while (t.isAlive()){
System.out.println("123 正在运行");
Sy