Thread.currentThread()的理解

public class MyThread extends Thread {

	public MyThread() {
		System.out.println("构造方法的打印:" + Thread.currentThread().getName());
	}

	@Override
	public void run() {
		System.out.println("run方法的打印:" + Thread.currentThread().getName());
	}
public class Run2 {
	public static void main(String[] args) {
		MyThread mythread = new MyThread();
		 mythread.start();
		//mythread.run();
	}
}
第一种执行run()方法显示打印结果。原因:main线程调用自己定义的线程,构造方法中打印main,又因为执行run方法普通方法,并不是启动了一个线程,所以run方法中还是main

第二种执行start()方法显示打印结果。原因 同上对比可知


再看下面的案例:

public class CountOperate extends Thread {

	public CountOperate() {
		System.out.println("CountOperate---begin");
		
		System.out.println("Thread.currentThread().getName()="
				+ Thread.currentThread().getName());
		
		System.out.println("this.getName()=" + this.getName());
		System.out.println("CountOperate---end");
	}

	@Override
	public void run() {
		System.out.println("run---begin");
		
		System.out.println("Thread.currentThread().getName()="
				+ Thread.currentThread().getName());
		
		System.out.println("this.getName()=" + this.getName());
		System.out.println("run---end");
	}

}
public class Run {

	public static void main(String[] args) {
		CountOperate c = new CountOperate();
		Thread t1 = new Thread(c);
		t1.setName("A");
		t1.start();
	}

}

运行结果如下:



猜你喜欢

转载自blog.csdn.net/qq_35400008/article/details/80210121