标签:[] over str 不能 本质 test string system running
start()
和run()
以上就是这两个方法的本质区别,并且大多数情况下,直接调用run()的错误的。
public class StartAndRunTest {
private static class MyThread extends Thread{
private String name;
public MyThread(String name) {
this.name = name;
}
@Override
public void run() {
System.out.println(name+" running in "+Thread.currentThread().getName());
}
}
public static void main(String[] args) {
MyThread m1=new MyThread("m1");
MyThread m2=new MyThread("m2");
m1.start();
m2.run();
}
}
/*
m2 running in main
m1 running in Thread-0
*/
上面的例子你可以看到,调用start的Thread类在新的线程上执行run方法,而直接调用run()方法的则是在当前main线程。(一个线程不能重复start(),具体可以看内部实现)
标签:[] over str 不能 本质 test string system running
原文地址:https://www.cnblogs.com/viscu/p/9779297.html