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

DSM*_*DSM 0 java multithreading java-threads

厌恶线程类工作正常.我能理解它的过程.然后我改变了

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

有人可以向我解释一下吗?我们总是可以使用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 + "--");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

rge*_*man 5

run直接调用一个Thread对象会破坏Thread首先出现的问题.

如果你打电话run,那么runThread作为正常方法在当前执行.您必须在其start上调用方法Threadrun执行不同的操作Thread.

导致此线程开始执行; Java虚拟机调用此线程的run方法.