currentThread方法
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方法相关推荐
- 线程的常用方法——currentThread方法||在main方法中直接调用run()方法,没有开启新的线程,以在run方法中的当前线程就是main线程||启动子线程,子线程会调用run方法
线程的常用方法--currentThread方法 Thread.currentThread()方法可以获得当前线程 Java 中的任何一段代码都是执行在某个线程当中的. 执行当前代码的线程就是当前线程 ...
- currentThread()方法的作用
currentThread() 方法可返回代码段正在被哪个线程调用的信息.下面通过一个示例进行说明. 例 1 假设在主线程中有如下代码: public class Run1 {public stati ...
- java线程方法_Java线程的三种方式
创建线程有三种方式: 1.继承Thread类 2.实现Runnable接口 3.使用Callable和Future创建线程 三种方式详解如下: ---------------------------- ...
- python3 线程隔离_Python的线程隔离实现方法
前段时间看了下flask的源码,对于这样一个轻量级的web框架是怎样支持多线程的感到非常好奇,于是深入了解了一番. flask是依赖werkeug来实现线程间的隔离的,而werkeug最后又使用到了p ...
- 深入探索多线程优化方法
前言 什么是线程的概念我就不在介绍,不懂的自行百度,我想百分之九十九的人都是知道的,至于多线程,通俗的就是有很多的线程在一起工作从而完成某一件事,从而提升效率.这就是使用多线程的好处之一,举个列子,一 ...
- 使用Thread类和Runnable方法来创建一个线程的区别
第一:Thread类需要被继承,然后重写run()方法,但是Java中的类是单继承的,也就是说,若某个类继承Thread获取线程功能后,就不能再继承别的类了.但是Runnable接口解决了这个问题,某 ...
- java多线程常用方法_Java多线程入门中几个常用的方法
一.currentThread()方法 currentThread方法就是返回当前被调用的线程. 该方法为一个本地方法,原码如下: /*** Returns a reference to the cu ...
- Thread.currentThread()、isAlive()、Thread.sleep()的使用
1.Thread.currentThread()方法: 返回当前正在运行的线程 一个简单的例子: MyThread_7.Java类的构造函数是被main线程调用的,而run()方法是被名为Thread ...
- java多线程 isAlive方法的有趣现象
多线程中的isAlive方法相信大家都知道.无非就是当前线程如果是存活的,在运行中,则返回true,否则返回false,不过还是有些有趣现象的,我们这里用代码演示一下: class TestThrea ...
最新文章
- Travis CI : 最小的分布式系统(三)
- 黄聪:原生js的音频播放器,兼容pc端和移动端(原创)
- 解决Hbase启动报错问题:No such file or directory!
- 表单必填_forms. 表单(中)
- 三菱plc两个16转换32位_三菱FX2NPLC如何将十进制数转换成十六进制-专业自动化论坛-中国工控网论坛...
- PCB学习第一节内容整理
- Machine Learning No.7: Support Vector Machines
- SAP Cloud for Customer的CTI呼叫中心解决方案
- .Net的后台服务技术有哪些?
- –is-dba_查询存储–每个DBA的下一代工具
- 在django中使用vue.js需要注意的地方
- 【QT】QT从零入门教程(九):QT常用控件 [QSlider、QSpinBox、QComboBox、QRadioButton]
- easyUI 设置datagrid的行高 + 文字超宽换行
- Java SE 9:不可变Map和Map.Entry的工厂方法
- Java高并发 -- 并发扩展
- 数字孪生智慧园区能源管理系统
- 啊哈C语言第五章 第 八 节
- [SVM系列之一]白话支持向量机(SVM)
- zblog添加html标题出错,ZBLOG模板修改的一些技巧小结
- SSL证书7大常见错误及解决办法!