使用 运行() 而不是线程的 start() 会发生什么?

What will happen use run() instead of start() of a thread?

休闲线程 class 工作正常。我能理解它的过程。然后我改了

mc.srart()mc.run() 但没有任何改变,也没有任何错误。

有人可以给我解释一下吗?我们可以总是使用 运行() 而不是 start() 吗?

public class Main {

    public static void main(String[] args) {

        Myclass mc = new Myclass();
        mc.start();
    }
}

class Myclass extends Thread {
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.print(i + "--");
        }
    }
}

直接在 Thread 对象上调用 run 破坏了 Thread 放在首位的意义。

如果你调用run,那么run会在当前Thread执行,作为一个普通的方法。您必须在 Thread 上调用 the startmethod 才能让 run 在不同的 Thread.

中执行

Causes this thread to begin execution; the Java Virtual Machine calls the run method of this thread.