java如何重载run()方法

Jas*_*n Z 1 java multithreading

我有一些像这样的代码,我如何让两个run()方法在start()方法的不同线程中运行?

 public class Test extends Thread{
   @override
   public void run(){
        //do something

   }
   public void run(int i){
        //do something

   }

  public static void main(String[] args) {
     Test test=new Test();
     // test.start()
     // How Can I let the two run() methods run in different thread?

 }

}
Run Code Online (Sandbox Code Playgroud)

Reu*_*ani 9

你想要两个独立的线程,你只需要实现Runnable.扩展线程意味着你想要改变某个Thread行为中的某些东西,而不是这样.

每个线程都会做其他两个Runnable实现,Task1并且Task2:

class Task1 implements Runnable (){
    public run(){
        System.out.println("Runnable 1");
    }
}

class Task2 implements Runnable (){
    public run(){
        System.out.println("Runnable 2");
    }
}

// create two threads, one for each task
Thread t1 = new Thread(new Task1());
Thread t2 = new Thread(new Task2());

// start the threads (should print the two messages)
t1.start();
t2.start();
Run Code Online (Sandbox Code Playgroud)

要为不同的Runnable实现使用不同的参数,请使用如下构造函数:

class ParamTask implements Runnable (){
    String someArg;
    public ParamTask(String someArg){
        this.someArg = someArg;
    }    

    public run(){
        System.out.println("Runnable argument was: " + this.someArg);
    }
}

Thread argThread = new Thread(new ParamTask("this is a message"));

argThread.start();
Run Code Online (Sandbox Code Playgroud)