博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Thread.currentThread与this的区别
阅读量:4343 次
发布时间:2019-06-07

本文共 1916 字,大约阅读时间需要 6 分钟。

  在看多线程的时候,看到这个知识点,感觉需要验证一下。

一:线程自启动

1.程序

1 package com.jun.it.thread; 2  3 public class MyThread extends Thread { 4     MyThread(){ 5         System.out.println("----------"); 6         System.out.println("name:"+Thread.currentThread().getName()); 7         System.out.println("isActive:"+Thread.currentThread().isAlive()); 8         System.out.println("thisName:"+this.getName()); 9         System.out.println("thisIsActive:"+this.isAlive());10         System.out.println("----------");11     }12     public void run(){13         System.out.println("=======================");14         System.out.println("name:"+Thread.currentThread().getName());15         System.out.println("isActive:"+Thread.currentThread().isAlive());16         System.out.println("thisName:"+this.getName());17         System.out.println("thisIsActive:"+this.isAlive());18         System.out.println("=======================");19     }20 }

测试类:

1 package com.jun.it.thread; 2  3  4 public class RunMyThread { 5     public static void main(String[] args) { 6         test1(); 7 //        test2(); 8     } 9     /**10      * 测试一11      */12     public static void test1(){13         MyThread myThread=new MyThread();14         myThread.setName("AA");15         myThread.start();16     }17 18     /**19      * 测试二20      */21     public static void test2(){22         MyThread myThread=new MyThread();23         Thread thread=new Thread(myThread);24         thread.setName("BB");25         thread.start();26     }27 }

 

2.效果:

  

 

3.总结

  Thread.currentThread():表示当前的代码正在被谁调用。

  this:只能是当前的线程,在程序中,代表是myThread。

  PS:

  至于thread-0:每次新new的时候,在构造函数中,会定义默认的线程名。

 

二:线程被作为参数传入Thread

1.程序

  启动测试2

 

2.效果

  

 

3.总结

  根据上文的说法,this代表myThread,则说明,线程没有开启。

  在这个示例中,外部线程在start后启动,实际上调用的是内部线程的run方法开启的。

  Thread.currentThread()与this指向了不同的线程对象,Thread.currentThread()指向的是外部的线程,表示当前方法被外部线程thread调用;this指向内部线程myThread。

 

转载于:https://www.cnblogs.com/juncaoit/p/11151521.html

你可能感兴趣的文章
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_42、SpringBoot常用定时任务配置实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_39、SpringBoot2.x整合redis实战讲解...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第14节 高级篇幅之SpringBoot多环境配置_59、SpringBoot多环境配置介绍和项目实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_41、SpringBoot定时任务schedule讲解...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_43、SpringBoot2.x异步任务实战(核心知识)...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第11节 Logback日志框架介绍和SpringBoot整合实战_45、SpringBoot2.x日志讲解和Logback配置实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-05 服务注册和发现Eureka Server搭建实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务...
查看>>
UI基础--烟花动画
查看>>
Android dex分包方案
查看>>
ThreadLocal为什么要用WeakReference
查看>>
删除本地文件
查看>>
FOC实现概述
查看>>
base64编码的图片字节流存入html页面中的显示
查看>>
这个大学时代的博客不在维护了,请移步到我的新博客
查看>>
GUI学习之二十一——QSlider、QScroll、QDial学习总结
查看>>
gethostbyname与sockaddr_in的完美组合
查看>>
kibana的query string syntax 笔记
查看>>
旋转变换(一)旋转矩阵
查看>>