您好我想知道main方法将如何以及在何处创建用于执行应用程序的线程。无论是扩展线程还是可运行。
答案 0 :(得分:1)
这是一个很好的问题。当您执行应用程序时,JRE将为其创建一个线程。该线程将执行您的main()
方法。它将在程序结束时完成。显然它应该是最后一个要结束的线程。它扩展了Thread
类,可以使用like:
class ThreadTest {
public static void main(String [] args){
Thread mainThread = Thread.currentThread();
}
}
答案 1 :(得分:0)
主线程是在program.it中创建的第一个线程,由jvm。
创建答案 2 :(得分:0)
我想知道main方法将如何以及在何处创建用于执行应用程序的线程。
没有。
实际发生的是某事创建main
线程,然后main
线程调用相关类中的public static void main(String[])
方法。
这是如何发生的依赖于实现。如果您真的想了解详细信息,可以使用适用于Java 6,7& S的完整OpenJDK代码库。 8(测试版)可供下载。
是扩展线程还是可运行。
未指定主线程是Thread
的实例还是Thread
的子类。虽然Runnable
可以用于调用Runnable
方法,但它不能(仅)成为main
。
但是,main
方法可以找出主线程的实际类是什么,如下所示:
class Test {
public static void main(String [] args){
Thread t = Thread.currentThread();
System.out.println("Main thread class is " + t.getClass());
}
}