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

来源:互联网 发布:嵌入式linux书 编辑:程序博客网 时间:2024/06/01 09:34

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

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

class CountOperate extends Thread{public CountOperate(){System.out.println("CountOperate begin");  //CountOperate beginSystem.out.println("Thread.currentThread.getName(): "+Thread.currentThread().getName());  //mainSystem.out.println("this.getName(): "+this.getName());  //Thread-0System.out.println("CountOperate end");  //CountOperate end }@Overridepublic void run(){System.out.println("run begin");  // run beginSystem.out.println("Thread.currentThread.getName(): "+Thread.currentThread().getName()); // ASystem.out.println("this.getName(): "+this.getName()); //Thread-0System.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
原创粉丝点击