关于Thread.currentThread()和this的差异
重新来看多线程时,被这结果搞懵逼了。不多说,直接上代码:
public class MyThread02 extends Thread {
public MyThread02() {
System.out.println("init curr: " + Thread.currentThread().getName());
System.out.println("init this: "+this.getName());
}
@Override
public void run() {
System.out.println("run curr: " + Thread.currentThread().getName());
System.out.println("run this: "+this.getName());
}
}
public class Test02 {
public static void main(String[] args) {
MyThread02 target = new MyThread02();
Thread thread = new Thread(target);
thread.setName("A");
thread.start();
}
}
init curr: main
init this: Thread-0
run curr: A
run this: Thread-0
public Thread(Runnable target) {
init(null, target, "Thread-" + nextThreadNum(), 0);
}
/* For autonumbering anonymous threads. */
private static int threadInitNumber;
private static synchronized int nextThreadNum() {
return threadInitNumber++;
}
public void run() {
if (target != null) {
target.run();
}
}
关于Thread.currentThread()和this的差异的更多相关文章
- Java多线程之this与Thread.currentThread()的区别——java多线程编程核心技术
package mythread; public class CountOperate extends Thread{ public CountOperate(){ System.out.prin ...
- ClassLoader,Thread.currentThread().setContextClassLoader,tomcat的ClassLoader
实际上,在Java应用中所有程序都运行在线程里,如果在程序中没有手工设置过ClassLoader,对于一般的java类如下两种方法获得的ClassLoader通常都是同一个 this.getClass ...
- Class.forName() 初始化、Thread.currentThread().getContextClassLoader().getResourceAsStream
Class.forName() 和 ClassLoader.loadClass()的区别? Class.forName() 和 Class.forName().NewInstance()的区别? Cl ...
- java 笔记 Thread.currentThread().getContextClassLoader() 和 Class.getClassLoader()区别
查了一些资料也不是太明白两个的区别,但是前者是最安全的用法 打个简单的比方,你一个WEB程序,发布到Tomcat里面运行.首先是执行Tomcat org.apache.catalina.startup ...
- String.valueOf(Thread.currentThread().getContextClassLoader().getResource("")) 获取项目的绝对路径(shiro项目中来的八)
一,上代码 String.valueOf(Thread.currentThread().getContextClassLoader().getResource("")) file: ...
- Not on FX application thread; currentThread = AWT-EventQueue-0的解决方法
swing awt跑javafx报了这问题 Not on FX application thread; currentThread = AWT-EventQueue-0 解决方法 Platform.r ...
- Thread.currentThread()和this的区别——《Java多线程编程核心技术》
前言:在阅读<Java多线程编程核心技术>过程中,对书中程序代码Thread.currentThread()与this的区别有点混淆,这里记录下来,加深印象与理解. 具体代码如下: pub ...
- Thread.currentThread().getContextClassLoader().getResourceAsStream
Thread.currentThread().getContextClassLoader().getResourceAsStream 2014年04月02日 06:49:47 OkidoGreen 阅 ...
- 演示Thread.sleep(100)和Thread.currentThread().isInterrupted()+@Deprecated:将方法标注为废弃的方法
package charpter08; public class TestInterrupt01 { public static void main(String[] args) { Processo ...
随机推荐
- 【NHibernate】列“ReservedWord”不属于表 ReservedWords
NHibernate+FluentNHibernate+MySql 运行时黄页显示下边的异常,项目中找了半天没出现过这个列的关键字. [ArgumentException: 列“ReservedWor ...
- arrayLiist的四种遍历方法
package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public ...
- 快速排序-java
排序-快速排序 基本思想: 将数据划分为两部分,左边的所有元素都小于右边的所有元素:然后,对左右两边进行快速排序. 划分方法: 选定一个参考点(中间元素),所有元素与之相比较,小的放左边,大的放右边. ...
- java基础(环境设置,基础语法,函数数组)
框架图 环境搭建 课程中常见dos命令: dir : 列出当前目录下的文件以及文件夹 md : 创建目录 rd : 删除目录 cd : 进入指定目录 cd.. : 退回到上一级目录 cd/ : 退回到 ...
- CCNA第三章子网划分,变长子网掩码(VLSM)和TCP/IP排错考试要点学习笔记
1. 子网划分的好处 缩减网络流量; 优化网络性能; 简化管理; 可以更为灵活地形成大覆盖范围的网络. 2. 如何创建子网的步骤 首先,确认所需要的网络ID数; 其次,确认每个子网中所 ...
- ecshop数据表说明
ecshop数据表说明 数据库结构说明,以及自己在后台备份不需要备份的表(红色字体是不需要备份的表)备份文件在FTP或者服务器上网站根目录下data\sqldata下 数据库采用mysql,共78张表 ...
- mysql 数值函数
可使用常见的算术操作符.注意就 -. +和 *而言, 若两个参数均为正数,则其计算结果的精确度为 BIGINT (64比特),若其中一个参数为无符号整数, 而其它参数也是整数, 则结果为无符号整数.请 ...
- 解剖SQLSERVER 第十三篇 Integers在行压缩和页压缩里的存储格式揭秘(译)
解剖SQLSERVER 第十三篇 Integers在行压缩和页压缩里的存储格式揭秘(译) http://improve.dk/the-anatomy-of-row-amp-page-compre ...
- RCP:给GEF编辑器添加网格和标尺。
网格和标尺效果如上图所示. 添加网格比较简单,也可以自己实现,主要思路是为编辑器添加一个GridLayer.但是还是建议参考eclipse自己的GEF样例来实现. 需要注意两个部分: 1.重写org. ...
- 从为什么String=String谈到StringBuilder和StringBuffer
前言 有这么一段代码: public class TestMain { public static void main(String[] args) { String str0 = "123 ...