继承thread类时,this即当前线程实例,可直接调用getname()和getpriority()获取名称与优先级;名称默认为"thread-n",优先级范围1–10,默认5,建议启动前通过构造函数或setname()/setpriority()设置。

在 Java 中,继承 Thread 类后,获取当前线程的名称和优先级非常直接:因为子类本身就是线程对象,可以直接调用 this.getName() 和 this.getPriority(),无需额外获取“当前线程引用”。
直接使用 this 获取名称和优先级
继承 Thread 的子类中,this 就代表当前正在运行的线程实例。因此,在 run() 方法或其它实例方法里,可直接访问线程属性:
-
this.getName()返回该线程的名称(默认为 "Thread-N",可自定义) -
this.getPriority()返回该线程的调度优先级(范围 1–10,默认为 5)
设置名称和优先级的常见方式
线程名称和优先级通常在启动前设置,推荐在构造时或启动前显式指定:
- 通过构造函数传入名称:
new MyThread("Worker-1") - 调用
setName("xxx")或setPriority(Thread.MAX_PRIORITY) - 注意:优先级设置可能被操作系统限制,不保证实际生效
完整示例代码
以下是一个继承 Thread 的典型用法:
<font size="2">class MyThread extends Thread {
public MyThread(String name) {
super(name); // 设置线程名
}
@Override
public void run() {
System.out.println("线程名:" + this.getName());
System.out.println("优先级:" + this.getPriority());
}
}
// 使用
MyThread t = new MyThread("Downloader");
t.setPriority(Thread.MAX_PRIORITY); // 可选:提高优先级
t.start();</font>
与 Runnable 方式的关键区别
若采用实现 Runnable 接口的方式,需调用 Thread.currentThread().getName();但继承 Thread 时,this 即当前线程,更简洁直观。不过要注意:Java 不支持多继承,继承 Thread 会占用唯一的父类位置,一般更推荐组合(Runnable + Thread)方式。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











