currentThread方法

要点

  • public static native Thread currentThread(); 返回当前运行的线程。

curretThread()

  我们直接从下面的案例直观的去看。

public class TestCurrentThreadMethod {public static void main(String[] args) {Thread t1 = new Thread(new Runnable() {@Overridepublic void run() {System.out.println("run方法中打印currentThread  " + Thread.currentThread().hashCode());}});t1.start();// t1.run();System.out.println("main线程中打印t1对象" + t1.hashCode());System.out.println("main线程中打印currentThread " + Thread.currentThread().hashCode());}
}

  看上面的例子中,第一次运行我们先调用t1.start();查看打印结果。你可以发现t1的hashCode和run方法中的hashCode是一致的,和main线程的Thread.currentThread().hashCode()是不一致的。第二次我们注释t1.start()开启t1.run,从“线程的创建和执行”章节中我们知道这种方式是没有真正开启一个新的线程的。再次查看结果,你可以看到run方法和main线程的Thread.currentThread().hashCode()是一样的,而t1对象的hashCode和它们不一样。第二次的t1并不是一个真正的线程就是一个普通的对象,所以它的hashCode也不可能和run方法中的一致。应为此时的run方法是在main线程中执行的。
   因此我们可以知道什么叫做返回当前线程了。即Thread.currentThread()返回执行改行代码的线程的信息。

currentThread方法相关推荐

  1. 线程的常用方法——currentThread方法||在main方法中直接调用run()方法,没有开启新的线程,以在run方法中的当前线程就是main线程||启动子线程,子线程会调用run方法

    线程的常用方法--currentThread方法 Thread.currentThread()方法可以获得当前线程 Java 中的任何一段代码都是执行在某个线程当中的. 执行当前代码的线程就是当前线程 ...

  2. currentThread()方法的作用

    currentThread() 方法可返回代码段正在被哪个线程调用的信息.下面通过一个示例进行说明. 例 1 假设在主线程中有如下代码: public class Run1 {public stati ...

  3. java线程方法_Java线程的三种方式

    创建线程有三种方式: 1.继承Thread类 2.实现Runnable接口 3.使用Callable和Future创建线程 三种方式详解如下: ---------------------------- ...

  4. python3 线程隔离_Python的线程隔离实现方法

    前段时间看了下flask的源码,对于这样一个轻量级的web框架是怎样支持多线程的感到非常好奇,于是深入了解了一番. flask是依赖werkeug来实现线程间的隔离的,而werkeug最后又使用到了p ...

  5. 深入探索多线程优化方法

    前言 什么是线程的概念我就不在介绍,不懂的自行百度,我想百分之九十九的人都是知道的,至于多线程,通俗的就是有很多的线程在一起工作从而完成某一件事,从而提升效率.这就是使用多线程的好处之一,举个列子,一 ...

  6. 使用Thread类和Runnable方法来创建一个线程的区别

    第一:Thread类需要被继承,然后重写run()方法,但是Java中的类是单继承的,也就是说,若某个类继承Thread获取线程功能后,就不能再继承别的类了.但是Runnable接口解决了这个问题,某 ...

  7. java多线程常用方法_Java多线程入门中几个常用的方法

    一.currentThread()方法 currentThread方法就是返回当前被调用的线程. 该方法为一个本地方法,原码如下: /*** Returns a reference to the cu ...

  8. Thread.currentThread()、isAlive()、Thread.sleep()的使用

    1.Thread.currentThread()方法: 返回当前正在运行的线程 一个简单的例子: MyThread_7.Java类的构造函数是被main线程调用的,而run()方法是被名为Thread ...

  9. java多线程 isAlive方法的有趣现象

    多线程中的isAlive方法相信大家都知道.无非就是当前线程如果是存活的,在运行中,则返回true,否则返回false,不过还是有些有趣现象的,我们这里用代码演示一下: class TestThrea ...

最新文章

  1. Travis CI : 最小的分布式系统(三)
  2. 黄聪:原生js的音频播放器,兼容pc端和移动端(原创)
  3. 解决Hbase启动报错问题:No such file or directory!
  4. 表单必填_forms. 表单(中)
  5. 三菱plc两个16转换32位_三菱FX2NPLC如何将十进制数转换成十六进制-专业自动化论坛-中国工控网论坛...
  6. PCB学习第一节内容整理
  7. Machine Learning No.7: Support Vector Machines
  8. SAP Cloud for Customer的CTI呼叫中心解决方案
  9. .Net的后台服务技术有哪些?
  10. –is-dba_查询存储–每个DBA的下一代工具
  11. 在django中使用vue.js需要注意的地方
  12. 【QT】QT从零入门教程(九):QT常用控件 [QSlider、QSpinBox、QComboBox、QRadioButton]
  13. easyUI 设置datagrid的行高 + 文字超宽换行
  14. Java SE 9:不可变Map和Map.Entry的工厂方法
  15. Java高并发 -- 并发扩展
  16. 数字孪生智慧园区能源管理系统
  17. 啊哈C语言第五章 第 八 节
  18. [SVM系列之一]白话支持向量机(SVM)
  19. zblog添加html标题出错,ZBLOG模板修改的一些技巧小结
  20. SSL证书7大常见错误及解决办法!

热门文章

  1. 注意:对话机器人正在改变你和工作
  2. C语言实现 开灯问题
  3. 小生长谈:idhttp与cookie
  4. 软件开发模型和测试模型(瀑布模型,螺旋模型,增量、迭代,敏捷,敏捷中的测试,软件测试v模型,软件测试w模型)
  5. S5720 telnet配置后无法登陆
  6. (附源码)计算机毕业设计SSM智慧校园防疫管理平台
  7. PMP 80个输入输出总结
  8. PGA内存空间的分配与回收
  9. 名正则言顺谈服装品牌名称规划
  10. 软考笔记(八)高级系统架构师/分析师:系统架构