current [ˈkɜːrənt] 意思:现在的image.png
    image.png
    用Thread构造器为线程取名字;
    image.png

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