//package hl.crja.toob.multhread;
/**
*
* 创建线程:通过继承 Thread 类,重写 run 方法
* 通过 new 得到一个 线程对象
* 通过 start() 方法 运行 线程对象的 run() 方法
* 继承后直接获得父类的实例方法,如 getId() getName() 等
* Thread.currentThread() 为类方法,返回 当前线程的 调用对象
*
*
* 线程的 五种 状态:NRRBD new ready running blocked dead
* 新建 就绪 运行 阻塞 死亡
*
* 调用 new 关键字 创建一个线程对象后,处于 新建 状态
* 调用 start() 方法后,线程处于 就绪 状态,“等待执行”,
* 此时还未运行 run() 方法 ,具体 运行时间 取决于 java 虚拟机的调度策略
* 当 run() 方法被调用时,线程处于 运行 状态
* 当 run() 方法执行完毕,处于 死亡 状态
*
*
* @author Liu Huan
*/
class FirstThread extends Thread {
@Override
public void run() {
System.out.println("Thread name : " + getName());
System.out.println("Thread id : " + getId());
System.out.println("Thread state : " + getState());
System.out.println("Thread group : " + getThreadGroup());
System.out.println("Thread priority : " + getPriority());
System.out.println("Thread context : " + getContextClassLoader());
}
}
class test {
public static void main(String[] args) {
var p = new FirstThread();
p.start();
System.out.println("current : " + Thread.currentThread().getName());;
}
}
运行结果: