currentThread().getName和this.getName()的区别

currentThread().getName()方法:返回代码段正在被哪个线程调用的name信息。

this.getName()方法:是获取当前对象的名字,只是单纯的方法调用

class CountOperate extends Thread{
	public CountOperate(){
		System.out.println("CountOperate begin");  //CountOperate begin
		System.out.println("Thread.currentThread.getName(): "+Thread.currentThread().getName());  //main
		System.out.println("this.getName(): "+this.getName());  //Thread-0
		System.out.println("CountOperate end");  //CountOperate end 
	}

	@Override
	public void run(){
		System.out.println("run begin");  // run begin
		System.out.println("Thread.currentThread.getName(): "+Thread.currentThread().getName()); // A
		System.out.println("this.getName(): "+this.getName()); //Thread-0
		System.out.println("run end");  //run end"
	}
}

public class Run_ThreadName{
	public static void main(String [] args){
		CountOperate c=new CountOperate();
		Thread t1=new Thread(c);
		t1.setName("A");
		t1.start();
	}
}


运行结果:    


/**运行 CountOperate c=new CountOperate()时,会调用CountOperate 的构造方法,
** Thread.currentThread.getName()是获得调用这个方法的线程的名字,在main线程中调用故name是main
** this.getName() 是获取当前CountOperate 对象的名字,只是单纯的方法调用,由于没有重写这个方法,所以调用的是父类Thread 中的方法
**  t1.setName("A"),修改了t1的名字,和 thread对象没有关系,所以run方法中this.getName()输出还是Thread-0
**/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值