Thread.currentThread与this的区别】的更多相关文章

前言:在阅读<Java多线程编程核心技术>过程中,对书中程序代码Thread.currentThread()与this的区别有点混淆,这里记录下来,加深印象与理解. 具体代码如下: public class MyThread09 extends Thread { public MyThread09() { System.out.println("MyThread09 Constructor begin"); System.out.println("Thread.c…
Thread.currentThread()与this的区别: Thread.currentThread()方法返回的是对当前正在执行的线程对象的引用,this代表的是当前调用它所在函数所属的对象的引用. 使用范围: Thread.currentThread()在两种实现线程的方式中都可以用. this只能在继承方式中使用.因为在Thread子类中用this,this代表的是线程对象. 如果你在Runnable实现类中用this.getName(),那么编译错误,因为在Runnable中,不存在…
感谢原文作者:王婷婷-Smily 原文链接:https://blog.csdn.net/dfshsdr/article/details/92760135 缘由 很多人认为多线程中的Thread.currentThread()和this都是显示当前线程的意思,其实不然,他们两个代表不同的意思,下面用一个小例子说明一下. 示例: package currentThreadAndThis; public class MyThread extends Thread { public MyThread()…
在看多线程的时候,看到这个知识点,感觉需要验证一下. 一:线程自启动 1.程序 package com.jun.it.thread; public class MyThread extends Thread { MyThread(){ System.out.println("----------"); System.out.println("name:"+Thread.currentThread().getName()); System.out.println(&q…
1. Thread.currentThread()可以获取当前线程的引用,一般都是在没有线程对象又需要获得线程信息时通过Thread.currentThread()获取当前代码段所在线程的引用. 2. 如果调用isInterrupted返回true,this就是当前线程对象,此时Thread.currentThread()与this表示同一对象.否则,就必须使用Thread.currentThread()获取当前线程. 3.调用Thread.currentThread()方法的时候多半是不知道调…
currentThread()  到底是什么? 其实currentThread() 只是Thread 的一个静态方法.返回的正是执行当前代码指令的线程引用: /** * Returns a reference to the currently executing thread object. * * @return the currently executing thread. */ public static native Thread currentThread(); 换句话说, Threa…
查了一些资料也不是太明白两个的区别,但是前者是最安全的用法 打个简单的比方,你一个WEB程序,发布到Tomcat里面运行.首先是执行Tomcat org.apache.catalina.startup.Bootstrap类,这时候的类加载器是ClassLoader.getSystemClassLoader().而我们后面的WEB程序,里面的jar.resources都是由Tomcat内部来加载的,所以你在代码中动态加载jar.资源文件的时候,首先应该是使用Thread.currentThread…
总结起来一句话:在Thread中调用this其实就是调用Thread私有Runnable类型的target,target是Thread类的一个属性,而Thread.currentThread()是指新New出来的实例Thread类.两个是不同的对象.实例化一个Thread的对象,都会将其赋值给Thread的私有target属性. 直接上代码: 注意代码中红色部分,就可以解释this和Thread.currentThread()的区别.实际上new Thread(Runnable),new Thr…
原文链接:http://www.cnblogs.com/signheart/p/922dcf75dd5fe6b418d4475af89c4664.html 使用Thread.currentThread().getName()和使用this.getName()和对象实例.getName(),都可以得到线程的名称,但是使用this调用getName()方法只能在本类中,而不能在其他类中,更不能在Runnable接口中,所以只能使用Thread.currentThread().getName()获取线…
一.正文: 有去看开源框架的童鞋,应该会经常看到如下代码:Thread.currentThread().getContextClassLoader().loadClass(className),那这个和Class.forName(className)有什么区别? 带着这个问题,笔者查了一些资料,现整理分享如下,如果不当之处还望斧正: 通常情况下,一个JVM中的所有类加载器被组织成一个层次结构,使得每一个类加载器(除了启动整个JVM的原始类加载器)都有一个父加载器.当被要求加载一个类时,每一个类加…