线程:我如何知道方法运行的线程?

时间:2014-02-08 16:26:04

标签: java multithreading class methods

在Java中:

我有一个开始在课程Xclass中运行的主题。此线程调用类a()中的方法Yclass,方法a()调用类b()中的方法Zclass

b()肯定在与a()相同的主题中运行吗?

2 个答案:

答案 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() runABCD等。<登记/> 获取您启动的th线程的名称。在开始th之前,您可以 为其设置名称(通过调用th.setName())。我想这可以回答你的问题。