首页 > 其他 > 详细

Thread.currentThread()和this的区别

时间:2020-02-16 19:26:34      阅读:48      评论:0      收藏:0      [点我收藏+]

package threadTest;

 

public class CountOperate extends Thread{

    public CountOperate(){

       //CountOperate类初始化时,main线程在执行中,是alive的;this代表新建的thread对象,线程未启动非alive

       System.out.println("CountOperate -- 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("CountOperate -- end ");

    }

    @Override

    public void run(){

       //当前正在执行的线程就是 A,A是alive的,而this依然是Thread-0,非alive的

       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 threadTest;

 

public class Run {

    public static void main(String[] args){

       //this就代表 c 对象,创建对象的线程就是Thread-0,此时有两个线程,还有一个是main

       CountOperate c =new CountOperate();

       Thread t1=new Thread(c);

       //线程t1未启动,非alive

       System.out.println("main begin t1 isAlive()" + t1.isAlive());

       t1.setName("A");

       //又启动一个线程 A,此时共三个线程。

       t1.start();

       //线程t1启动,alive

       System.out.println("main begin t1 isAlive()" + t1.isAlive());

    }

 

}

 

参考 《JAVA多线程编程核心技术》高洪岩

Thread.currentThread()和this的区别

原文:https://www.cnblogs.com/perfumeBear/p/12317815.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!