How can I pass a parameter to a Java Thread?

Steve picture Steve · May 18, 2009 · Viewed 365.8k times · Source

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

Also, how does it work for anonymous classes?

Answer

Alnitak picture Alnitak · May 18, 2009

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();