首先说结论:
提前说明一下 ,Thread这个类 其实是一个代理类,
原因:
平常 我们实现一个类实现 Runnable 接口,比如:StartRun implements Runnable 在最后启动线程是 我们会这样做:
StartRun st =new StartRun();
Thread t=new Thread(st);
创建一个Thread类将我们实现了 Runnable 接口的类,传入构造函数,然后我们看Thread的源码:
将 st 赋值给Runnable 变量 ,当我们 调用线程,调用run()方法时,它就会去调用 st 的run()方法。
所以说 我们调用 Thread.currentThread() 得到的是我们传入的 实现了 Runnable接口的类,也就是 st 。