得到当前方法的名字Thread.currentThread().getStackTrace()[1].getMethodName();

得到当前方法的名字

String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();

getStackTrace()返回一个表示该线程堆栈转储的堆栈跟踪元素数组。如果该线程尚未启动或已经终止,则该方法将返回一个零长度数组。如果返回的数组不是零长度的,则其第一个元素代表堆栈顶,它是该序列中最新的方法调用。最后一个元素代表堆栈底,是该序列中最旧的方法调用。getStackTrace()[0]表示的事getStackTrace方法

时间: 2024-10-27 23:20:22

得到当前方法的名字Thread.currentThread().getStackTrace()[1].getMethodName();的相关文章

ClassLoader,Thread.currentThread().setContextClassLoader,tomcat的ClassLoader

实际上,在Java应用中所有程序都运行在线程里,如果在程序中没有手工设置过ClassLoader,对于一般的java类如下两种方法获得的ClassLoader通常都是同一个 this.getClass.getClassLoader(): Thread.currentThread().getContextClassLoader(): 方法一得到的Classloader是静态的,表明类的载入者是谁: 方法二得到的Classloader是动态的,谁执行(某个线程),就是那个执行者的Classloade

关于 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

实现多线程的两种方法:继承Thread类或实现Runnable接口

实现多线程的两种方法:继承Thread类或实现Runnable接口 Java中实现多线程有两种方法:继承Thread类和实现Runnable接口,在程序开发中只要是多线程,我们一般都是实现Runnable接口,原因归结为一点:实现接口比继承类要好. 多线程的第一种实现方式:继承Thread类 步骤如下 创建一个继承Thread的类(假定为A),并重写Thread的run方法 构造一个A类对象,假定为aa 调用aa的start方法.(start方法是从Thread继承过来的) 具体例子如下 pac

Class.forName() 初始化、Thread.currentThread().getContextClassLoader().getResourceAsStream

Class.forName() 和 ClassLoader.loadClass()的区别? Class.forName() 和 Class.forName().NewInstance()的区别? Class.forName("xx.xx")等同于Class.forName("xx.xx",true,CALLClass.class.getClassLoader()),第二个参数(bool)表示装载类的时候是否初始化该类,即调用类的静态块的语句及初始化静态成员变量. C

创建线程的两种方法,继承Thread,继承Runnable

继承Thread 1 package thread; 2 //继承Thread 3 public class TestThread { 4 public static void main(String[] args) { 5 //run()方法由CPU调用:分线程 6 MyThread thread=new MyThread(); 7 thread.start(); 8 //主线程 9 String name=Thread.currentThread().getName();//得到所在线程的名

Thread.currentThread()与this的区别

Thread.currentThread()与this的区别: 1.Thread.currentThread().getName()方法返回的是对当前正在执行的线程对象的引用,this代表的是当前调用它所在函数所属的对象的引用. 2.使用范围: Thread.currentThread().getName()在两种实现线程的方式中都可以用.   this.getName()只能在继承方式中使用.因为在Thread子类中用this,this代表的是线程对象.   如果你在Runnable实现类中用

Java多线程之this与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.ou

C#多线程实现方法——线程池(Thread Pool)

ThreadPool使用 同步机制 ThreadPool使用 需要定义waitcallback委托形式如 [csharp] view plain copy print? public delegate void WaitCallback(object state); public delegate void WaitCallback(object state); 例如如下例子: [csharp] view plain copy print? static private void ThreadW

关于Thread.currentThread()和this的差异

重新来看多线程时,被这结果搞懵逼了.不多说,直接上代码: 1 public class MyThread02 extends Thread { 2 public MyThread02() { 3 System.out.println("init curr: " + Thread.currentThread().getName()); 4 System.out.println("init this: "+this.getName()); 5 } 6 @Override