直接在线程对象上调用Runnable的run()方法

Pra*_*Kar 5 java multithreading

我们不能直接在线程的对象上调用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();
    }   
}
Run Code Online (Sandbox Code Playgroud)

输出: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

小智 8

这不会有任何编译或运行时错误.但它也不会产生新的线程.它将run()在当前主线程中执行该方法.

是指如果我们直接调用run方法会发生什么?