84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
Thread.currentThread()不是返回当前程序运行的线程,而是返回Thread.currentThread()这句代码执行时所在的线程。
所以看到,新的分线程构造时代码在主线程中执行,而run方法内的代码是分线程中执行的。
看输出很容易理解
1、new一个Thread对象的时候默认的名字就是Thread-n格式的,你可以看看Thread源码。2、你这就是一个线程对象,this在你这样使用的情况下,是当前的线程了。3、Thread.currentThread()永远都是返回当前运行的线程。
new
Thread
Thread-n
this
Thread.currentThread()
构造方法运行结果可以理解,但是为什么run方法的运行结果不是setName里的testThread而是thread呢?
1.getName()方法是从Thread类继承来的,看看Thread类的getName()方法就知道了:
/** * Returns this thread's name. * * @return this thread's name. * @see #setName(String) */ public final String getName() { return String.valueOf(name); }
2.是3.是构造器中,Thread.currentThread()是main线程,run方法中的Thread.currentThread()是当前线程
Thread.currentThread()不是返回当前程序运行的线程,而是返回Thread.currentThread()这句代码执行时所在的线程。
所以看到,新的分线程构造时代码在主线程中执行,而run方法内的代码是分线程中执行的。
看输出很容易理解
1、
new
一个Thread
对象的时候默认的名字就是Thread-n
格式的,你可以看看Thread
源码。2、你这就是一个线程对象,
this
在你这样使用的情况下,是当前的线程了。3、
Thread.currentThread()
永远都是返回当前运行的线程。构造方法运行结果可以理解,但是为什么run方法的运行结果不是setName里的testThread而是thread呢?
1.getName()方法是从Thread类继承来的,看看Thread类的getName()方法就知道了:
2.是
3.是
构造器中,Thread.currentThread()是main线程,run方法中的Thread.currentThread()是当前线程