我们不能直接在线程对象上调用Runnable的run()方法,但是根据下面的程序,我们可以在没有任何编译或运行时错误的情况下这样做。为什么会这样呢?
public class ThreadCheck implements Runnable {
@Override
public void run() {
for (int i=0; i<10; ) {
System.out.println(++i);
}
}
public static void main(String[] args) {
Thread mythread = new Thread(new ThreadCheck());
mythread.run();
mythread.run();
mythread.start();
}
}
输出结果: 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
t.start()
时,它也像普通方法一样工作。每个方法在调用它的线程中运行,并且每个方法都会执行其应该执行的操作。t.start()
应该启动一个新线程。那么,r.run()
应该做什么呢?别问我!去问写这段代码的人吧! - Solomon Slow