У меня есть класс, который выходит из потока:
public class Generador extends Thread {
...
public Generador(int marca, float sleep) {
this.marca = marca;
this.sleep = sleep;
this.cantActivaciones = 0;
}
@Override
public void start() {
marcadorAct++;
cantActivaciones++;
if (marcadorAct == 3) {
desalojarPasajero = true;
marcadorAct = 0;
} else {
desalojarPasajero = false;
}
}
@Override
public void run() {
System.out.println("The thread is running.....");
}
Моя проблема в том, что метод run () не работает, когда я использую метод start (). Вот мой код:
public class Simulación {
...
Generador generador[] = new Generador[30]; // Arr of threads...
public Simulación() { // The constructor
....
for (int i = 0; i < generador.length; i++) {
generador[i] = new Generador((i + 1) * 1000000, rand.nextInt(3) + rand.nextFloat());
}
....
}
public void generarPasajero() { // The method who decides to start a thread...
for (int i = 0; i < generador.length; i++) {
if (!generador[i].isAlive()) {
generador[i].start(); // HERE START DOESNT RUN THE RUN() METHOD
break;
}
}
}
Надеюсь, вы могли понять мою проблему. Кто-нибудь может мне помочь с этим? Спасибо!