请解释下面代码的输出:
如果我调用
如果我调用
为什么会出现这种不一致性?请解释一下。
如果我调用
th1.run()
,输出结果为:EXTENDS RUN>>
RUNNABLE RUN>>
如果我调用
th1.start()
,输出结果为:RUNNABLE RUN>>
EXTENDS RUN>>
为什么会出现这种不一致性?请解释一下。
class ThreadExample extends Thread{
public void run() {
System.out.println("EXTENDS RUN>>");
}
}
class ThreadExampleRunnable implements Runnable {
public void run() {
System.out.println("RUNNABLE RUN>>");
}
}
class ThreadExampleMain{
public static void main(String[] args) {
ThreadExample th1 = new ThreadExample();
//th1.start();
th1.run();
ThreadExampleRunnable th2 = new ThreadExampleRunnable();
th2.run();
}
}
run()
而不是start()
。 - Peterdk