currentThread()方法返回代码段正在被哪个线程调用

currentThread()方法返回代码段正在被哪个线程调用

package com.stono.thread2.page16;

public class MyThread extends Thread{
    public MyThread() {
        System.out.println("构造方法的打印:"+Thread.currentThread().getName());
    }
    @Override
    public void run() {
        System.out.println("run方法的打印:"+Thread.currentThread().getName());
    }
    
    public static void main(String[] args) {
        MyThread myThread = new MyThread();
//        myThread.start();
//        构造方法的打印:main
//        run方法的打印:Thread-0

        myThread.run();
//        构造方法的打印:main
//        run方法的打印:main

    }
}

 注意与this.getName()的区别

package com.stono.thread2.page16;

public class CountOperate extends Thread{
    public CountOperate() {
        System.out.println("CountOperate---begin");
        System.out.println("Thread.currentThread().getName()="+Thread.currentThread().getName());
        System.out.println("this.getName()="+this.getName());
        System.out.println("CountOperate---end");
    }
    @Override
    public void run() {
        // super.run();
        System.out.println("run---begin");
        System.out.println("Thread.currentThread().getName()="+Thread.currentThread().getName());
        System.out.println("this.getName()="+this.getName());
        System.out.println("run---end");
        
    }
    
    public static void main(String[] args) {
        CountOperate c = new CountOperate();
        Thread t1 = new Thread(c);
        t1.setName("A");
        t1.start();
//    CountOperate---begin
//    Thread.currentThread().getName()=main
//    this.getName()=Thread-0
//    CountOperate---end
//    run---begin
//    Thread.currentThread().getName()=A
//    this.getName()=Thread-0
//    run---end
    }

}

 this.getName()是Thread.getName()方法,源码:

    public final String getName() {
        return new String(name, true);
    }
原文地址:https://www.cnblogs.com/stono/p/8370699.html