Saltar al contenido

¿Cómo puedo pasar un parámetro a un hilo de Java?

Solución:

Debe pasar el parámetro en el constructor al objeto Runnable:

public class MyRunnable implements Runnable {

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

   public void run() {
   }
}

e invocarlo así:

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

Para clases anónimas:

En respuesta a las ediciones de preguntas, aquí es cómo funciona para las clases anónimas

   final X parameter = ...; // the final is important
   Thread t = new Thread(new Runnable() {
       p = parameter;
       public void run() { 
         ...
       };
   t.start();

Clases nombradas:

Tiene una clase que extiende Thread (o implementa Runnable) y un constructor con los parámetros que le gustaría pasar. Luego, cuando crea el nuevo hilo, debe pasar los argumentos y luego iniciar el hilo, algo como esto:

Thread t = new MyThread(args...);
t.start();

Runnable es una solución mucho mejor que Thread BTW. Entonces prefiero:

   public class MyRunnable implements Runnable {
      private X parameter;
      public MyRunnable(X parameter) {
         this.parameter = parameter;
      }

      public void run() {
      }
   }
   Thread t = new Thread(new MyRunnable(parameter));
   t.start();

Esta respuesta es básicamente la misma que esta pregunta similar: Cómo pasar parámetros a un objeto Thread

a través del constructor de una clase Runnable o Thread

class MyThread extends Thread {

    private String to;

    public MyThread(String to) {
        this.to = to;
    }

    @Override
    public void run() {
        System.out.println("hello " + to);
    }
}

public static void main(String[] args) {
    new MyThread("world!").start();
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *