Java中新线程的调用堆栈信息

Java中新线程的调用堆栈信息,java,multithreading,Java,Multithreading,当我们调用start()时,一个新的执行线程将从专用的调用堆栈开始 我想知道在调用堆栈中的第一个方法是:start()还是run() 前面提到,一旦run()完成,线程就被认为是死线程 start()根本不在新线程上调用;它只在原始线程上运行。start()根本不会在新线程上调用;它只在原始线程上运行。start是主线程上的方法调用。这意味着它位于主线程的堆栈上。然后在start内部实际触发了一个新线程,run方法是新线程堆栈上的第一个方法。start是主线程上的方法调用。这意味着它位于主线程的

当我们调用start()时,一个新的执行线程将从专用的调用堆栈开始

我想知道在调用堆栈中的第一个方法是:start()还是run()


前面提到,一旦run()完成,线程就被认为是死线程

start()
根本不在新线程上调用;它只在原始线程上运行。

start()
根本不会在新线程上调用;它只在原始线程上运行。

start
是主线程上的方法调用。这意味着它位于主线程的堆栈上。然后在
start
内部实际触发了一个新线程,
run
方法是新线程堆栈上的第一个方法。

start
是主线程上的方法调用。这意味着它位于主线程的堆栈上。然后在
start
中,一个新线程实际被触发,
run
方法是新线程堆栈上的第一个方法。

感谢您的回复。一旦调用start(),线程就可以被认为是活动的。这似乎有点矛盾。。这是否意味着状态“live”并不意味着一个新堆栈?是的,但是新堆栈上没有出现
start()
方法。@Firefox可以这样想:当调用一个方法时,它会被推到线程的调用堆栈上。由于您仅在start方法中创建新线程,因此它不可能出现在新创建的线程堆栈上(好吧,这是个谎言,当然可以,但没有太多意义)。谢谢Voo,您的评论为我澄清了这一点。@Firefox很好。顺便说一句,如果你在用户名前加上一个@符号,用户会自动收到关于你的帖子的通知。谢谢你的回复。一旦调用start(),线程就可以被认为是活动的。这似乎有点矛盾。。这是否意味着状态“live”并不意味着一个新堆栈?是的,但是新堆栈上没有出现
start()
方法。@Firefox可以这样想:当调用一个方法时,它会被推到线程的调用堆栈上。由于您仅在start方法中创建新线程,因此它不可能出现在新创建的线程堆栈上(好吧,这是个谎言,当然可以,但没有太多意义)。谢谢Voo,您的评论为我澄清了这一点。@Firefox很好。顺便说一句,如果你在用户名前加了一个@符号,用户会自动被告知你的帖子。谢谢你的澄清,都铎银行的澄清