26

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

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

Class A{}

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

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

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

4

2 回答 2

46

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

当 JVM 启动时,它会创建一个名为“Main”的线程。你的程序将在这个线程上运行,除非你自己创建额外的线程。

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

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

于 2013-07-16T06:07:02.857 回答
11

首先Main Thread is a parent thread of every thread是模棱两可。与 不同Process的是,在 Java 线程中没有父子的概念。您确实必须ThreadGroups对线程进行分组,然后再创建子组,但这与Process如果父母死了,孩子仍然存在的意义不同。

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

于 2013-07-16T06:09:00.050 回答