参考:http://bbs.csdn.net/topics/391872079

 package thread.demo01;

 public class MyThread extends Thread {

     public MyThread() {
System.out.println("构造方法的打印 : " + Thread.currentThread().getName());
} @Override
public void run() {
System.out.println("run方法的打印: " + Thread.currentThread().getName());
}
}
 package thread.demo01;

 public class Run2 {

     public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();
} }

MyThread的构造方法是main现成调用的

而run方法是被新开的线程调用

所以输出结果是:

 package thread.demo01;

 public class Run2 {

     public static void main(String[] args) {
MyThread myThread = new MyThread();
// myThread.start();
myThread.run();
} }

若更改代码为如上,run方法则是main线程调用,所以输出结果:

----------------------------------------------------------------------------------

 package thread.demo01;

 public class CurrentOperate extends Thread {

     public CurrentOperate() {
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 thread.demo01;

 public class Run {

     public static void main(String[] args) {
CurrentOperate c = new CurrentOperate();
Thread c1 = new Thread(c);
c1.start();
} }

和上面一样,这边的有个 Thread-1,是因为 CurrentOperate 传给了 Thread,所以

调用run方法 不是main而是c1所在的线程。

Thread.currentThread().getName()是获得调用这个方法的线程的名字,在main线程中调用的当然是main了。

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

----------------------------------------------------------------------------------------------

 package thread.demo02;

 public class CountOperate extends Thread {

     public CountOperate() {
System.out.println("CountOpreate -- begin");
System.out.println("Thread.currentThread().getName() = " + Thread.currentThread().getName());
System.out.println("Thread.currentThread().isAlive() = " + Thread.currentThread().isAlive());
System.out.println("this.getName() = " + this.getName());
System.out.println("this.isAlive() = " + this.isAlive());
System.out.println("CountOpreate -- end");
} @Override
public void run() {
System.out.println("run -- begin");
System.out.println("Thread.currentThread().getName() = " + Thread.currentThread().getName());
System.out.println("Thread.currentThread().isAlive() = " + Thread.currentThread().isAlive());
System.out.println("this.getName() = " + this.getName());
System.out.println("this.isAlive() = " + this.isAlive());
System.out.println("run -- end");
} }
 package thread.demo02;

 public class Run {

     public static void main(String[] args) {
CountOperate c = new CountOperate();
Thread t1 = new Thread(c);
System.out.println("main begin t1 isAlive = " + t1.isAlive());
// t1.setName("A");
t1.start();
System.out.println("main end t1 isAlive = " + t1.isAlive());
} }

Thread--currentThread()的更多相关文章

  1. Java多线程之this与Thread.currentThread()的区别——java多线程编程核心技术

      package mythread; public class CountOperate extends Thread{ public CountOperate(){ System.out.prin ...

  2. 关于Thread.currentThread()和this的差异

    重新来看多线程时,被这结果搞懵逼了.不多说,直接上代码: public class MyThread02 extends Thread { public MyThread02() { System.o ...

  3. ClassLoader,Thread.currentThread().setContextClassLoader,tomcat的ClassLoader

    实际上,在Java应用中所有程序都运行在线程里,如果在程序中没有手工设置过ClassLoader,对于一般的java类如下两种方法获得的ClassLoader通常都是同一个 this.getClass ...

  4. Class.forName() 初始化、Thread.currentThread().getContextClassLoader().getResourceAsStream

    Class.forName() 和 ClassLoader.loadClass()的区别? Class.forName() 和 Class.forName().NewInstance()的区别? Cl ...

  5. java 笔记 Thread.currentThread().getContextClassLoader() 和 Class.getClassLoader()区别

    查了一些资料也不是太明白两个的区别,但是前者是最安全的用法 打个简单的比方,你一个WEB程序,发布到Tomcat里面运行.首先是执行Tomcat org.apache.catalina.startup ...

  6. String.valueOf(Thread.currentThread().getContextClassLoader().getResource("")) 获取项目的绝对路径(shiro项目中来的八)

    一,上代码 String.valueOf(Thread.currentThread().getContextClassLoader().getResource("")) file: ...

  7. Not on FX application thread; currentThread = AWT-EventQueue-0的解决方法

    swing awt跑javafx报了这问题 Not on FX application thread; currentThread = AWT-EventQueue-0 解决方法 Platform.r ...

  8. Thread.currentThread()和this的区别——《Java多线程编程核心技术》

    前言:在阅读<Java多线程编程核心技术>过程中,对书中程序代码Thread.currentThread()与this的区别有点混淆,这里记录下来,加深印象与理解. 具体代码如下: pub ...

  9. Thread.currentThread().getContextClassLoader().getResourceAsStream

    Thread.currentThread().getContextClassLoader().getResourceAsStream 2014年04月02日 06:49:47 OkidoGreen 阅 ...

  10. 演示Thread.sleep(100)和Thread.currentThread().isInterrupted()+@Deprecated:将方法标注为废弃的方法

    package charpter08; public class TestInterrupt01 { public static void main(String[] args) { Processo ...

随机推荐

  1. nginx做维护页面

    需求: 一个网站本来有好几个域名,然后也有好几个二级域名,现在停掉了,要求把所有的域名.二级域名,以及具体的文件请求,都指向一个维护页面. 1 单独在vhost里建一个conf文件 server { ...

  2. js数字排序方法

    function bubbleSort(arr){ var flag = false; // 定义一个变量为false,未交换位置 for(var i=0;i<arr.length-1;i++) ...

  3. S7-300定时器使用总结

    以后 规定我写博客 标题 全部采用 黄色第 加粗的黑色字体. S7-300 一共5种定时器 5种定时器线圈 S7-300的SIMATIC定时器的个数为(128~2028个)与CPU的型号有关, 定时器 ...

  4. 每天一点点之vue框架学习 - uni-app 修改上一页参数

    方法一:使用微信提供的 getCurrentPages() 来实现 // 更新上一级的数据 getPrevData(){ var pages = getCurrentPages(); var curr ...

  5. Mac 配置代码高亮 Git状态显示

    Mac 一个为开发者量身定做的笔记本,分享给大家希望能帮助大家配置一个好的开发环境,好的开发环境才有好的心情Code. 首先进入到Home到目录一般默认打开的都是Home,如果不是输入 cd ~ 回车 ...

  6. Go——标准库使用代理

    本文知识点 Go的安装 Go使用代理 Go进阶学习 环境配置 Go的安装 确认环境都安装好了,看看go的版本. go version 代码样例 使用代理,发送GET请求 package main im ...

  7. C# SqlBulkCopy 大量数据导入到数据库

    之前写了一篇C# 直接使用sql语句对数据库操作 (cmd.ExecuteNonQuery)的文章 这是针对数据量不大的操作,换句话说,效率太低,所以在此介绍一个效率高的.能大批量导入到数据库的方法 ...

  8. Aspen安装过程报错总结

    前几天一直帮朋友安装Aspen v11,因为之前的老版本总是报错,报错内容大概是证书过期了, 一开始朋友电脑上的老版本的Aspen 8卸载了,删除之前的数据库SqlServer 2012 ,然后重新安 ...

  9. 实验吧-web-天下武功唯快不破(Python中byte和str的转换)

    题目:看看响应头 打开网站,既然已经提示我们看响应头了,那我们就看看呗(习惯bp,也可直接F12查看) 可以看到,响应头部分有个FLAG,而且有提示:please post what you find ...

  10. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-font

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...