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

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

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

Class A{}

然后,在执行时,它会引发异常:

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

方法和主线程之间有什么关系吗?main()


答案 1

main() 方法和 Main Thread 之间有什么关系吗?

当 JVM 启动时,它会创建一个名为“Main”的线程。您的程序将在此线程上运行,除非您自己创建其他线程。

“主”线程做的第一件事是查找您的方法并调用它。这是程序的入口点。static void main(String[] argv)

如果您希望事情“同时”发生,您可以创建多个线程,并为每个线程提供要执行的内容。然后,他们将继续同时执行这些操作。JVM 还为后台工作(如垃圾回收)创建了一些内部线程。


答案 2

首先是模棱两可的。与 不同,在 Java 线程中没有父线程和子线程的概念。您确实必须对线程进行分组,然后具有子组,但这与如果父级死亡,子级仍然存在的意义上不同。Main Thread is a parent thread of every threadProcessThreadGroupsProcess

线程是启动程序的线程,或者只是运行方法的线程。mainpublic static void main(String... args)