gpt4 book ai didi

java - 并发——回到主线程

转载 作者:行者123 更新时间:2023-11-30 07:02:28 24 4
gpt4 key购买 nike

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

如果我有这组类(class):

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() 将在主线程中运行,因为 HelloThreadExtension 没有实现 Runnable扩展线程

或者

它实际上是在调用 HelloThread .start() 后启动的单独线程中运行的吗?

问候,鲍勃

最佳答案

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

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

希望这有帮助

关于java - 并发——回到主线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40675731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com