我的导师告诉我主线程是每个线程的父线程,但他无法解释原因。
当我写一个简单的程序时:
Class A{}
然后它在执行时抛出异常:
java.lang.NoSuchMethodError: main Exception in thread "main"
main()
方法和主线程之间是否有任何关系?
答案 0 :(得分:42)
main()方法和主线程之间是否有任何关系?
当JVM启动时,它会创建一个名为“Main”的线程。除非您自己创建其他线程,否则您的程序将在此线程上运行。
“Main”线程的第一件事就是查找你的static void main(String[] argv)
方法并调用它。这是您的计划的切入点。
如果您希望“同时”发生事情,您可以创建多个线程,并为每个线程执行。然后他们将继续同时做这些事情。 JVM还为后台工作创建了一些内部线程,例如垃圾收集。
答案 1 :(得分:10)
首先Main Thread is a parent thread of every thread
含糊不清。与Process
不同,在Java线程中没有父和子的概念。你有ThreadGroups
对线程进行分组,然后有子组,但它与Process
不同,在某种意义上,如果父亲去世,孩子仍然存在。
main
线程是启动程序的线程,或者只是运行public static void main(String... args)
方法的线程。