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

时间:2015-01-26 18:39:21

标签: java multithreading java-threads

Fallow thread class工作正常。我能理解它的过程。然后我改变了

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 + "--");
        }
    }
}

1 个答案:

答案 0 :(得分:5)

直接在run对象上调用Thread会导致首先出现Thread

如果您致电run,则run将作为正常方法在当前Thread中执行。您必须致电Thread上的the startmethod,让其run执行Thread

  

使该线程开始执行; Java虚拟机调用此线程的run方法。