我正在尝试使用可运行的方法创建一个线程。下面的代码

public class NewClass implements Runnable{
     public static void main(String[] agrg){
            NewClass n =new NewClass();
            n.start();
      }
      void start(){
            Thread th=new Thread();
            th.start();
      }
      @Override
      public void run() {
            System.out.println("Thread");
      }
}

在这种覆盖方法中,我应该调用run,但是它没有发生

最佳答案

您的run()方法属于NewClass,它不是Thread,而是一个工作线程。

因此,没有人会调用run()NewClass方法

在Java中,当您通过实现Runnable创建工作程序时,应仅覆盖run()方法。并将此worker的实例传递给Thread,例如

new Thread(new NewClass()).start();

因此,您可以执行以下操作
public class NewClass implements Runnable{
     public static void main(String[] agrg){
            NewClass n =new NewClass();
            n.start();
      }
      void start(){
            Thread th=new Thread(this);
            th.start();
      }
      @Override
      public void run() {
            System.out.println("Thread");
      }
}

10-07 19:09