关于Thread.currentThread().getName和this.getName()的问题
2015-09-12 00:00
169 查看
摘要: 关于Thread.currentThread().getName和this.getName()的返回值有时候不同
程序运行结果如下:
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()和使用this.getName(),都可以得到线程的名称,但是使用this调用getName()方法只能在本类中,而不能在其他类中,更不能在Runnable接口中,所以只能使用Thread.currentThread().getName()获取线程的名称,否则会出现编译时异常。
所以以后想过去线程的名称尽量使用Thread.currentThread().getName()。
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()和使用this.getName(),都可以得到线程的名称,但是使用this调用getName()方法只能在本类中,而不能在其他类中,更不能在Runnable接口中,所以只能使用Thread.currentThread().getName()获取线程的名称,否则会出现编译时异常。
所以以后想过去线程的名称尽量使用Thread.currentThread().getName()。
相关文章推荐
- Mac 安装 wget
- 最新手机号段归属地数据库 2018年3月版 382140条记录
- ActiveMQ与Spring集成
- 编译原理第一次作业
- 面试题
- 面试
- Linux 运行 Navicat 条件
- 显式类型转换
- shared_from_this 用法
- Hadoop系列之十:Hadoop配置文件及常用配置参数详解(未完成)
- 【马哥linux学员学习笔记】zabbix实现微信报警
- 【linux教程】inotify用法简介及结合rsync实现主机间的文件实时同步
- Python多版本管理软件pyenv的安装应用及pip的使用讲解
- 从0开始 3. JAVA基础数据类型
- 从0开始 4. Java运算符与表达式
- 从0开始 4. Java 选择与循环语句
- 从0开始 5.数组的定义
- 从0开始 6.面向对象
- TV开发记录
- commons-fileupload的使用