Java中的线程构造函数行为

时间:2014-10-10 14:27:52

标签: java

public class Test extends Thread {

     public void run() {

           System.out.println("done");
      }

     public static void main(String[] args) {

            Thread t = new Thread(new Program33());
            t.start();

     }
}

// java.lang.Thread类没有任何以Thread作为参数的构造函数,那么为什么这个程序成功运行。

3 个答案:

答案 0 :(得分:2)

Thread有一个构造函数,它只需要一个RunnableThread类就会实现Runnable接口。

这个构造函数在这里被调用。

假设您的Programm33 extends Threadimplements Runnable,您的代码将会编译。

请参阅API

答案 1 :(得分:2)

Thread类具有使用Runnable

的构造函数
  public Thread(Runnable target)

和Thread实现了Runnable。 您可以看到http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#Thread(java.lang.Runnable,%20java.lang.String)

答案 2 :(得分:1)

constructorsThreadRunnable作为参数:

public Thread(Runnable target)

当Thread实现Runnable时,很明显它会起作用。