如果我这样做,后台会发生什么:
class TestThread {
public static void main(String[] args) {
Thread t = new Thread();
t.start();
System.out.println(t.getName());
}
}
我知道要创建新线程,您必须通过扩展run()
类或实现Thread
接口来覆盖Runnable
方法。
如果我们实现Runnable
接口,我们必须提供目标运行方法,其中提供了必须同时运行的代码。
此外,如果我们不覆盖run()
方法并且不扩展Thread
或实现Runnable
,则main()
线程将执行。
我想知道在执行上述代码时后台究竟会发生什么?主要的run()
方法是否与其他Thread
一样?除了Thread
线程之外,这会创建一个新的main
吗?
答案 0 :(得分:1)
/**
* If this thread was constructed using a separate
* Runnable run object, then that
* Runnable object's run method is called;
* otherwise, this method does nothing and returns.
*
* Subclasses of Thread should override this method.
*/
public void run() {
if (target != null) {
target.run();
}
}
由于您尚未设置Runnable
目标,因此不会发生任何事情。
主要的
run()
方法是否与其他Thread
一样?
低级API可用于此目的。他们不一定需要创建Thread
实例来运行线程。这是一个很好的讨论:How main thread created by Java?
答案 1 :(得分:0)
创建新线程,启动,执行空*方法,然后终止。
*)并非真空:
public void run() {
if (target != null) {
target.run();
}
}