У меня возникают проблемы с реализациями Runnable и Thread. У меня есть этот абстрактный класс, который не может быть изменен:Метод run() не вызывается из реализации Runnable.
abstract class Ordenador {
...
protected Ordenador(String nombre, int[] array) {
...
}
protected void escribir() {
...
}
protected abstract void ordenar();
}
И этот алгоритм сортировки, который наследует от класса выше и реализует run()
метод, который называют сортировку один.
class Burbuja extends Ordenador implements Runnable {
protected Burbuja(String nombre, int[] array) {
super(nombre, array);
}
protected void ordenar() {
....
}
public void esperar() {
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
public void run() {
this.ordenar();
}
}
Наконец у меня есть основной класс, который создает случайный массив и создать новый объект Burbuja, что сортировать массив. Проблема в том, что при вызове b.join()
массив остается таким же, поэтому метод ordenar()
не вызывается.
class Aplicacion {
public static void main(String[] args) {
...
Burbuja burbuja = new Burbuja("Burbuja", array);
Thread b = new Thread(burbuja);
...
try {
b.join();
s.join();
... more sorting algorithms...
} catch (Exception ex) {
ex.printStackTrace();
System.exit(-1);
}
System.out.println("");
burbuja.escribir();
}
}
Я пробовал модифицировать некоторые части кода, но не работает ни.
ли вы начать ваши потоки в любом месте? т. е. у вас есть все для 'b.start();'? – nos
Вы звонили .start() в теме? – Nitek