并发this.getName()和Thread.currentThread().getName()区别
来源:互联网 发布:ibm软件测试招聘 编辑:程序博客网 时间:2024/06/05 18:05
package com.test.thread;import java.util.ArrayList;import java.util.List;public class CountOperate extends Thread{ public CountOperate() { super(); System.out.println("CountOperate---begin"); System.out.println(Thread.currentThread().getName()); System.out.println(Thread.currentThread().isAlive()); System.out.println(this.getName()); System.out.println(this.isAlive()); System.out.println("CountOperate---end"); } @Override public void run() { System.out.println("run---begin"); System.out.println(Thread.currentThread().getName()); System.out.println(Thread.currentThread().isAlive()); System.out.println(this.getName()); System.out.println(this.isAlive()); System.out.println("run---end"); } public static void main(String[] args) { CountOperate countOperate = new CountOperate(); Thread t1 = new Thread(countOperate); t1.setName("A"); t1.start(); System.out.println(t1.isAlive()); }}
输出结果:
CountOperate—begin
main
true
Thread-0
false
CountOperate—end
true
run—begin
A
true
Thread-0
false
run—end
首先要清楚thread和t1是两个完全不同的对象,他俩之间唯一的关系就是把thread传递给t1对象仅仅是为了让t1调用thread对象的run方法。hello thread = new hello();运行这句话的时候会调用hello的构造方法,Thread.currentThread().getName()是获得调用这个方法的线程的名字,在main线程中调用的当然是main了,而this.getName()这个方法是获取当前hello对象的名字,只是单纯的方法的调用。因为没有重写这个方法所以调用的是父类Thread(把这个对象当作是普通的对象)中的方法。
后面的输出类似。t1.setName(“A”);这句话只是修改了t1的名字,和thread对象没有关系,所以run方法中this.getName()的输出还是Thread-0。
0 0
- 并发this.getName()和Thread.currentThread().getName()区别
- Thread.currentThread().getName() 和 this.getName()区别详解
- Thread.currentThread().getName() 和 this.getName()详解
- 多线程this.getName()和Thread.currentThread().getName()
- currentThread().getName和this.getName()的区别
- Thread.currentThread().getName() ,对象实例.getName() 和 this.getName()区别
- Thread.currentThread().getName()与this.getName()的区别
- 多线程当中this.name和Thread.currentThread.getName的区别
- 多线程中this.getName()和Thread.currentThread().getName()
- Thread.CurrentThread.getName 与 this.getName()
- 【java】多线程中Thread.currentThread().getName()和this.getName()的区别
- Java多线程中this.getName()和Thread.currentThread.getName()的区别?
- JAVA 多线程 this.getName()与Thread.currentThread().getName()
- 有关多线程中this.getName()和Thread.currentThread().getName()返回名字不一样的问题
- 多线程中this.getName()和Thread.currentThread().getName()返回名字不一样的问题
- Thread.currentThread().getName()…
- Thread.currentThread().getName()
- 多线程的this.getName()与Thread.currentThread().getName为何有时不一样
- 第十一章 个人渣翻译 spf13插件---nerdtree 使用教程(下)
- 51单片机做计时器
- Windows配置MySQL(5.6.20)免安装版
- Android中Dialog数据的获取报错空指针问题
- 在apache配置ecdsa加密套件
- 并发this.getName()和Thread.currentThread().getName()区别
- EOJ1488 COIN COLLECTOR 贪心
- PAT_自测4_Have Fun with Numbers
- 开始啦
- 公钥密码学
- Vista RC vs. pagefile攻击
- Error:Execution failed for task ':app:compileDebugJavaWithJavac'.解决方案
- python中时间相加问题
- socket.io node.js mysql