我想知道Java main方法是否是一个线程。我注意到,如果main方法返回,则所有线程都被终止。你能解释一下为什么会这样吗? 提前谢谢。
答案 0 :(得分:3)
实际上main方法在主线程上运行! main threads invokes your main()
java应用程序的所有其他线程都是从这个线程生成的!
答案 1 :(得分:1)
当您启动应用程序时,操作系统会为您创建一个主线程(或其他上下文中的UI线程)的线程。
此线程只运行您的main
方法并停止。
无论如何,有两种类型的线程。
main thread
是User thread
。
所有用户线程完成后,JVM将停止。
嗯,这只是一个“快速响应”,我很有用,你可以在这里找到更好的答案。
答案 2 :(得分:0)
是的,main方法在主线程上运行。但它仍然像任何其他用户线程一样。
还有守护程序线程,当所有其他用户线程都停止运行时,它会停止。
主线程还负责生成程序员在程序中创建的其他线程,这些线程又可以生成其他线程等等。
并不是当main方法返回所有线程时被杀死。一个原因可能是因为main是一个void方法,它不能返回任何东西。 :D
但是,如果你产生一个或多个运行很长时间的用户线程,并且你的join()
方法中没有使用main
方法,那么即使主方法结束,如果其run()
方法尚未停止执行,则其他线程仍会运行。