关于 Thread.currentThread()】的更多相关文章

  package mythread; public class CountOperate extends Thread{ public CountOperate(){ System.out.println("CountOperate---begin"); System.out.println("Thread.currentThread().getName()=" + Thread.currentThread().getName());//获取线程名 System.…
重新来看多线程时,被这结果搞懵逼了.不多说,直接上代码: 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…
实际上,在Java应用中所有程序都运行在线程里,如果在程序中没有手工设置过ClassLoader,对于一般的java类如下两种方法获得的ClassLoader通常都是同一个 this.getClass.getClassLoader(): Thread.currentThread().getContextClassLoader(): 方法一得到的Classloader是静态的,表明类的载入者是谁: 方法二得到的Classloader是动态的,谁执行(某个线程),就是那个执行者的Classloade…
Class.forName() 和 ClassLoader.loadClass()的区别? Class.forName() 和 Class.forName().NewInstance()的区别? Class.forName("xx.xx")等同于Class.forName("xx.xx",true,CALLClass.class.getClassLoader()),第二个参数(bool)表示装载类的时候是否初始化该类,即调用类的静态块的语句及初始化静态成员变量. C…
查了一些资料也不是太明白两个的区别,但是前者是最安全的用法 打个简单的比方,你一个WEB程序,发布到Tomcat里面运行.首先是执行Tomcat org.apache.catalina.startup.Bootstrap类,这时候的类加载器是ClassLoader.getSystemClassLoader().而我们后面的WEB程序,里面的jar.resources都是由Tomcat内部来加载的,所以你在代码中动态加载jar.资源文件的时候,首先应该是使用Thread.currentThread…
一,上代码 String.valueOf(Thread.currentThread().getContextClassLoader().getResource("")) file:/D:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp8/wtpwebapps/MVNFHM/WEB-INF/classes/ String path = (String.valueOf(Thread.currentThread().g…
swing awt跑javafx报了这问题 Not on FX application thread; currentThread = AWT-EventQueue-0 解决方法 Platform.runLater(new Runnable() { @Override public void run() { //javaFX operations should go here } });…
前言:在阅读<Java多线程编程核心技术>过程中,对书中程序代码Thread.currentThread()与this的区别有点混淆,这里记录下来,加深印象与理解. 具体代码如下: public class MyThread09 extends Thread { public MyThread09() { System.out.println("MyThread09 Constructor begin"); System.out.println("Thread.c…
Thread.currentThread().getContextClassLoader().getResourceAsStream 2014年04月02日 06:49:47 OkidoGreen 阅读数:28335更多 个人分类: 资源文件读取-JavaJava-知识   Java路径 Java中使用的路径,分为两种:绝对路径和相对路径.具体而言,又分为四种: 一.URI形式的绝对资源路径 如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aa…
package charpter08; public class TestInterrupt01 { public static void main(String[] args) { Processor p = new Processor(); // 创建一个线程并将创建的对象传进线程 Thread t1 = new Thread(p, "t1"); t1.start(); t1.interrupt(); } } ----------------------- package char…
currentThread()  到底是什么? 其实currentThread() 只是Thread 的一个静态方法.返回的正是执行当前代码指令的线程引用: /** * Returns a reference to the currently executing thread object. * * @return the currently executing thread. */ public static native Thread currentThread(); 换句话说, Threa…
总结起来一句话:在Thread中调用this其实就是调用Thread私有Runnable类型的target,target是Thread类的一个属性,而Thread.currentThread()是指新New出来的实例Thread类.两个是不同的对象.实例化一个Thread的对象,都会将其赋值给Thread的私有target属性. 直接上代码: 注意代码中红色部分,就可以解释this和Thread.currentThread()的区别.实际上new Thread(Runnable),new Thr…
Thread.currentThread()与this的区别: Thread.currentThread()方法返回的是对当前正在执行的线程对象的引用,this代表的是当前调用它所在函数所属的对象的引用. 使用范围: Thread.currentThread()在两种实现线程的方式中都可以用. this只能在继承方式中使用.因为在Thread子类中用this,this代表的是线程对象. 如果你在Runnable实现类中用this.getName(),那么编译错误,因为在Runnable中,不存在…
原文链接: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的原始类加载器)都有一个父加载器.当被要求加载一个类时,每一个类加…
查了一些资料也不是太明白两个的区别,但是前者是最安全的用法 打个简单的比方,你一个WEB程序,发布到Tomcat里面运行.首先是执行Tomcat org.apache.catalina.startup.Bootstrap类,这时候的类加载器是ClassLoader.getSystemClassLoader().而我们后面的WEB程序,里面的jar.resources都是由Tomcat内部来加载的,所以你在代码中动态加载jar.资源文件的时候,首先应该是使用Thread.currentThread…
Thread.currentThread().getContextClassLoader() and Class.getClassLoader()   一.同一工程中: String path = Thread.currentThread().getContextClassLoader().getResource(".").getPath(); System.out.println(path); String string = Sample1.class.getClassLoader(…
参考博客: https://blog.csdn.net/guangyinglanshan/article/details/51645053 公司项目近段时间要使用thread, 个人想去了解Thread.sleep和Thread.currentYhread.sleep的不同之处,在这里做一下简单的记录. 一.第一种方式是只调用sleep静态方法:第二种是获取对象后再调用sleep静态方法.第二种方式效率要低一些,因为多了一次函数调用, 而且通过对象调用静态方法也不太符合“静态”的定义(静态成员最…
在调用Response.End()时,会执行Thread.CurrentThread.Abort()操作. 如果将Response.End()放在try...catch中,catch会捕捉Thread.CurrentThread.Abort()产生的异常System.Threading.ThreadAbortException. 解决方法(任选一个): 1. 在catch中排除ThreadAbortException异常,示例代码如下: try { Response.End(); } catch…
最近在看Java多线程这本书,但是发现里面有个概念自己搞不清楚.就是Thread.currentThread().getName() 和 this.getName() 以及 对象.getName()区别??? 首先要知道Thread类有9个构造方法,因为也是初学,所以只用到了2个构造方法.先列出待会需要用到的源代码. 1) 无参的构造方法, 注意里面的nextThreadNum()这个方法. 里面是一个静态的变量,没调用一次无参构造器,就执行++操作 2) 带有一个Runnable对象的构造方法…
package seday08.thread; /** * @author xingsir * 主线程 * 线程提供了一个静态方法这个方法会将运行这个方法的线程返回:static Thread currentThread() * 一个重要的API:ThreadLocal会使用到它. */public class CurrentThreadDemo { /** * main方法实际上也是靠一个线程运行的. * @param args */ public static void main(Strin…
众所周知,Java的类加载机制采用了双亲委派模型,导致在进行类加载的时候会有多个加载器,这种复杂的机制,有时候会导致‘Exception in thread main java.lang.NoClassDefFoundError’这个异常,虽然可能你认为相应的类和jar包就在某个类加载器中.下面的文字,会试图尝试解释为什么会发生这种情况.   下面提供了一个简单的java程序来帮助理解问题的发生.    默认的JVM的类加载委派模型   默认的类加载委派模式是从下向上的,也就是双亲委派.这意味着…
JAVA线程状态.线程START方法源码.多线程.JAVA线程池.如何停止一个线程等多线程问题 这两个方法有点容易记混,这里就记录一下源码. Thread.interrupted()和Thread.currentThread().isInterrupted()区别 静态方法Thread.interrupted()源码如下: public static boolean interrupted() { return currentThread().isInterrupted(true); } 可以看…
在看多线程的时候,看到这个知识点,感觉需要验证一下. 一:线程自启动 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…
先看一下代码 public class Thread1 extends Thread{ @Override public void run() { try { System.out.println("Start"); //Thread.sleep(5000); Thread.currentThread().sleep(5000); System.out.println("Finished"); } catch (InterruptedException e) { /…
首先要明白 this.XXX 的使用场景 使用Thread.currentThread().getName()和使用this.getName()和对象实例.getName(),都可以得到线程的名称,但是使用this调用getName()方法只能在本类中,而不能在其他类中,更不能在Runnable接口中,所以只能使用Thread.currentThread().getName()获取线程的名称,否则会出现编译时异常.     Thread.currentThread().getName()  ,对…
1. Thread.currentThread()可以获取当前线程的引用,一般都是在没有线程对象又需要获得线程信息时通过Thread.currentThread()获取当前代码段所在线程的引用. 2. 如果调用isInterrupted返回true,this就是当前线程对象,此时Thread.currentThread()与this表示同一对象.否则,就必须使用Thread.currentThread()获取当前线程. 3.调用Thread.currentThread()方法的时候多半是不知道调…
package com.citi.tm.api.trade.mongo; public class ThreadTest { public static void main(String[] args) { Runnable r = () -> { try { //Thread.currentThread().sleep(15000);//a, b, sleep Thread.sleep(15000);//a, b, sleep } catch (InterruptedException e)…
感谢原文作者:王婷婷-Smily 原文链接:https://blog.csdn.net/dfshsdr/article/details/92760135 缘由 很多人认为多线程中的Thread.currentThread()和this都是显示当前线程的意思,其实不然,他们两个代表不同的意思,下面用一个小例子说明一下. 示例: package currentThreadAndThis; public class MyThread extends Thread { public MyThread()…
currentThread的详解 currentThread方法是Thread类的一个静态方法,用来获取当前运行的代码段,正在被哪个线程调用.我们先来看一眼源码. 是一个native方法.直接与系统层面做交互. 下面看一段代码 public static void main(String[] args) { String name = Thread.currentThread().getName(); System.out.println(name); } 输出的结果为main. 为什么为mai…