current [ˈkɜːrənt] 意思:现在的
用Thread构造器为线程取名字;
package com.itheima.d2_api;
/**
* 目标: 线程的API
*/
public class ThreadDemo01 {
// main方法是由主线程负责调度的
public static void main(String[] args) {
Thread t1 = new MyThread("一号");
// t1.setName("1号"); // 为线程取名字
t1.start(); // 线程开启
System.out.println(t1.getName()); // getName方法获取当前线程的名字(默认名字)
Thread t2 = new MyThread("2号");
// t2.setName("2号"); // 为线程取名字
t2.start(); // 线程开启
System.out.println(t1.getName()); // getName方法获取当前线程的名字
// 哪个线程执行它,它就得到哪个线程对象(当前线程对象)
// 主线程的名字就叫main
Thread m = Thread.currentThread(); // m 现在是mian方法的线程对象(因为是main方法执行了它)
System.out.println(m.getName()); // 获取main方法主线程的名字
m.setName("最牛的线程");
for (int i = 0; i < 5; i++) {
System.out.println(m.getName() + "线程输出:" + i);
}
}
}
package com.itheima.d2_api;
public class MyThread extends Thread{
public MyThread(){
}
// 定义一个有参构造器为 线程对象取名字
public MyThread(String name) {
// 为当前线程对象设置名称,送给父类的有参构造器初始化名称
super(name); // 父类(super)是Thread线程类
}
@Override
public void run() {
for (int i = 0; i < 5; i++) {
// 使用Thread类的currentThread()方法,获取当前线程对象,然后调用其getName方法,获取默认名字
// 如果是t1线程执行它,就拿t1的名字, t2执行它就拿t2的名字
System.out.println(Thread.currentThread().getName() + "子线程输出");
}
}
}