Java – How to pass a parameter to a Java Thread

javamultithreading

Can anyone suggest to me how I can pass a parameter to a thread?

Also, how does it work for anonymous classes?

Best Answer

You need to pass the parameter in the constructor to the Runnable object:

public class MyRunnable implements Runnable {

   public MyRunnable(Object parameter) {
       // store parameter for later user
   }

   public void run() {
   }
}

and invoke it thus:

Runnable r = new MyRunnable(param_value);
new Thread(r).start();