当前位置: 首页 > 面试题库 >

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

柯甫
2023-03-14
问题内容

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

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

Class A{}

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

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

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


问题答案:

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

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

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

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



 类似资料:
  • 问题内容: 由于当前正在执行的线程在遇到调用时会立即将其移入休眠状态。而线程进入 可运行 状态/ 就绪 状态。 问题答案: 使线程在给定的时间内肯定停止执行;如果没有其他线程或进程需要运行,则CPU将处于空闲状态(并可能进入节能模式)。 基本上意味着线程没有做任何特别重要的事情,如果需要运行任何其他线程或进程,则应该这样做。否则,当前线程将继续运行。

  • 问题内容: 进程和线程之间的技术区别是什么? 我感到像“过程”这样的词已被过度使用,并且还有硬件和软件线程。像Erlang这样的语言的轻量级进程怎么样?有确定的理由使用一个术语而不是另一个术语吗? 问题答案: 进程和线程都是独立的执行序列。典型的区别是(同一进程的)线程在共享内存空间中运行,而进程在单独的内存空间中运行。 我不确定您可能指的是“硬件”还是“软件”线程。线程是一种操作环境功能,而不是

  • 问题内容: 我在自学Java线程时,发现有些令我困惑的地方。我做了一个叫做实现的课程。run方法仅打印“ Hello World”,休眠一秒钟,然后重复。 在我的主要方法中,我有: 如我所料,我看到了“ Hello World”和“ Done”。快速打印,这意味着main方法已到达末尾,但是我没想到的是,即使到达main末尾后,我开始运行的线程仍保持运行。 为什么即使退出主程序后程序仍继续执行?我

  • 问题内容: 在Java 8中,和方法之间有什么区别? 问题答案: 双方map并可以应用到他们都回报。不同之处在于,该map运算为每个输入值生成一个输出值,而该运算为每个输入值生成任意数量(零个或多个)的值。 这反映在每个操作的参数中。 该map操作采用一个,对输入流中的每个值调用,并产生一个结果值,该结果值发送到输出流。 该操作采用的功能在概念上要消耗一个值并产生任意数量的值。但是,在Java中,

  • 问题内容: 重载方法和覆盖方法有什么区别?谁能举例说明? 问题答案: 方法重载涉及在同一个类中具有相同名称但参数不同的两个或多个方法的概念。 方法覆盖是指具有相同参数但实现不同的两个方法。其中一个将存在于父类中,而另一个将存在于派生类或子类中。的注释,而不是必需的,可以是有帮助的执行的方法的适当的首要在编译时。

  • 我在下面的某个地方看到了代码片段。 由于前面提到的代码片段工作得很好,它表明std::cout是从std::ostream派生而来的。但我还找不到任何直接的参考资料。 根据文件,其中说[强调我的]: 全局对象std::cout和std::wcout控制输出到实现定义类型的流缓冲区(源自std::stream buf),与标准C输出流stdout相关联。 上面的引文表示,控制输出到派生自std::s