线程无参构造函数有什么用?

1 java multithreading

如果线程构造函数有参数,并且参数是一个函数入口,那么就相当于创建了一个新的线程来执行这个函数。不过,Thread也有无参构造函数,看来Thread类的成员函数都不能再绑定执行函数了。

问题:默认构造的线程对象有什么用?子线程如何执行?

mar*_*ace 5

当你问为什么时,答案令人担忧。不可能了解设计该语言的人的想法。不过我会猜测一下。

Thread还允许子类化。例如,该线程类确实有一个已实现的run()方法,并使用无参数(空)构造函数。

public class HelloThread extends Thread {
  @Override
  public void run() {
    System.out.println( "Hello Thread." );
  }
}

new HelloThread().start();
Run Code Online (Sandbox Code Playgroud)

因此,有不止一种方法可以让线程对象执行任意代码。争论Runnable并不总是需要的。

  • 相关但切题的问答:[Java 中的“实现 Runnable”与“扩展线程”](/sf/ask/37904121/?)。 (2认同)