CurrentThread()方法
功能:
返回代码段正在被哪个线程调用的信息;
实例代码:
class MyThread implements Runnable{
public MyThread() {
System.out.println("构造方法的打印:"+Thread.currentThread().getName());
}
@Override
public void run() {
System.out.println("run的打印:"+Thread.currentThread().getName());
}
}
public class CurrentThreadTest {
public static void main(String[] args) {
Thread myThread=new Thread(new MyThread());
myThread.start();
}
}
运行结果:
构造方法的打印:main
run的打印:Thread-0
结果分析:
main()方法被main的线程调用。
在调用start()方法的前提下run()方法是被线程myThread调用。
稍作修改:
将main()方法改为:
public static void main(String[] args) {
Thread myThread=new Thread(new MyThread());
myThread.run();
}
此时的输入结果就变为:
构造方法的打印:main
run的打印:main
结果分析:
如果调用了start()方法则run()方法会由JVM调用,此时才真正启动了一个线程,如果直接调用run()则run()会被当成是普通方法。此时myThread线程没有启动。