在Java中:
我有一个开始在课程Xclass
中运行的主题。此线程调用类a()
中的方法Yclass
,方法a()
调用类b()
中的方法Zclass
。
b()
肯定在与a()
相同的主题中运行吗?
答案 0 :(得分:5)
除非您在途中启动任何其他线程,否则调用/调用方法永远不会在新线程中启动。
通过打印当前正在执行的线程名称的输出,可以轻松完成检查:
System.out.println(Thread.currentThread().getName());
如果你考虑一下,如果方法的顺序调用能够自动启动一个新线程,它就会产生多个顺序方法并发运行的可能性。这可能是非常不合逻辑的,因为其中一个运行方法为另一个生成参数,另一个如何在没有前一个方法完成执行的情况下启动。
答案 1 :(得分:3)
当你启动一个新线程时(通过调用th.start()
),JVM会创建一个
新的执行线程并调用th.run()
方法。然后想象一下
run()
调用A调用B调用C调用D等(A,B,C,D等方法)。
所有这些方法A,B,C,D都在同一个线程中执行
(你打电话的那个开始)。
您可以随时拨打Thread.currentThread().getName()
run
,A
,B
,C
,D
等。<登记/>
获取您启动的th
线程的名称。在开始th
之前,您可以
为其设置名称(通过调用th.setName()
)。我想这可以回答你的问题。