并发 - 返回主线程

时间:2016-11-18 11:16:00

标签: java multithreading

我最近一直在试验线程。我的实验提出了一个问题,我希望你回答,以确认我的理解。

如果我有这组课程:

public class HelloThread implements Runnable {

    public void run(){
        doSomething();
        doSomethingMore();
        andSomethingMore();
    }

    public void doSomething(){
        // print something
    }

    public void doSomethingMore(){
        // print more
    }

    public void andSomethingMore(){
       HelloThreadExtension helloThreadExtension = new helloThreadExtension();
       helloThreadExtension.doSomethingWithExtension();
    }

}

public class HelloThreadExtension {

    public void doSomethingWithExtension(){
        // do something more advanced than printing
    }
}

然后如果我将启动HelloThread线程,doSomething()doSomethingMore()在新分离的线程中运行,但andSomethingMore()将在主线程中运行,因为{ {1}}不是HelloThreadExtensionimplement Runnable

OR

实际上它是否在调用extends Thread HelloThread后启动的单独线程中运行?

此致 鲍勃

1 个答案:

答案 0 :(得分:1)

run方法中调用的所有代码都将在一个新线程中运行,在完成执行后,它将控制返回到主线程以继续执行代码。

您可以通过调试代码并在Thread.start调用之前添加一个断点以及在Runnable实例的run方法中添加其他断点来查看它。我认为进行这个调试练习将帮助您了解线程在JVM中的工作方式。

希望这有帮助