【发布时间】:2014-01-08 23:01:29
【问题描述】:
您好,我想知道 main 方法将如何以及在何处创建用于执行应用程序的线程。是extends thread还是runnable。
【问题讨论】:
标签: java multithreading
您好,我想知道 main 方法将如何以及在何处创建用于执行应用程序的线程。是extends thread还是runnable。
【问题讨论】:
标签: java multithreading
这是一个很好的问题。当您执行应用程序时,JRE 将为它创建一个线程。该线程将执行您的main() 方法。程序结束时完成。显然它应该是最后一个要结束的线程。它扩展了Thread 类,可以通过以下方式访问:
class ThreadTest {
public static void main(String [] args){
Thread mainThread = Thread.currentThread();
}
}
【讨论】:
main thread has ended
主线程是程序中第一个执行的线程。它是由jvm创建的。
【讨论】:
我想知道 main 方法将如何以及在何处创建用于执行应用程序的线程。
它没有。
实际发生的是something 创建main 线程,然后main 线程调用相关类中的public static void main(String[]) 方法。
这是如何发生的取决于实现。如果您真的想了解详细信息,可以下载适用于 Java 6、7 和 8(测试版)的完整 OpenJDK 代码库。
是扩展线程还是可运行。
没有指定主线程是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());
}
}
【讨论】: