Thread.currentThread()意思是返回当前线程对象,即老板(启动线程)让A(线程A)去写前端,让B(线程B)去写后端,C(线程C)去处理数据,那么在A,B,C中获取当前线程对象都指向老板(启动线程),并不是指向自己(A,B,C)
package test;
public class ThreadAnyWhere {
/**
* Thread.currentThread()方法的作用
* 返回的值是指执行该段代码的的线程对象(谁最先启动的线程指的就是谁)
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Thread currentThread = Thread.currentThread();
System.out.println("main中当前线程的id:"+currentThread.getId()+" 执行的线程是:"+currentThread.getName());
ThreadA threadA = new ThreadA("创建线程A");
threadA.run();
}
static class ThreadA implements Runnable{
private String message;
public ThreadA(String message) {
this.message = message;
}
@Override
public void run() {
Thread currentThread = Thread.currentThread();
System.out.println(message);
System.out.println("ThreadA当前线程的id:"+currentThread.getId()+" 执行的线程是:"+currentThread.getName());
ThreadB threadB = new ThreadB("创建线程B");
threadB.run();
}
}
static class ThreadB implements Runnable{
private String message;
public ThreadB(String message) {
this.message = message;
}
@Override
public void run() {
Thread currentThread = Thread.currentThread();
System.out.println(message);
System.out.println("ThreadB当前线程的id:"+currentThread.getId()+" 执行的线程是:"+currentThread.getName());
}
}
}
main中当前线程的id:1 执行的线程是:main
创建线程A
ThreadA当前线程的id:1 执行的线程是:main
创建线程B
ThreadB当前线程的id:1 执行的线程是:main