Thread.currentThread().getName()与this.getName()的区别

来源:互联网 发布:帝国cms模板安装教程 编辑:程序博客网 时间:2024/05/16 12:58
package mythread;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(){        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");    }} package test;import mythread.CountOperate;public class Run{    public static void main(String[] args){        CounOperate c = new CountOperate();        Thread ti = 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

造成这样的结果的原因是:currentThread()方法返回的是对当前正在执行的线程对象的引用,this代表的是当前调用它所在函数所属的对象的引用。

所以想获取当前运行线程的名称尽量使用Thread.currentThread().getName()。


0 0
原创粉丝点击