Java中main()方法和主线程之间的关系是什么?

时间:2013-07-16 06:04:33

标签: java multithreading main

我的导师告诉我主线程是每个线程的父线程,但他无法解释原因。

当我写一个简单的程序时:

Class A{}

然后它在执行时抛出异常:

java.lang.NoSuchMethodError: main Exception in thread "main"

main()方法和主线程之间是否有任何关系?

2 个答案:

答案 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)方法的线程。