Guten Morgen!
Leider verzweifle ich gerade an einem Problem in Java mit Threads.
Das Programm soll die Türme von Hanoi errechnen, was so nicht schwierig ist, nur habe ich ein Problem damit, die Threads einzubauen. Mein Momentaner versuch sieht so aus:
Leider gibt es da Probleme mit der Liste. Kann mir jemand helfen?
Danke schonmal im Vorraus!
P.S: Mir ist bewusst das eine Anwendung von Threads hier nicht sinnvoll ist, ich wollte es nur zur Übung probieren.
Leider verzweifle ich gerade an einem Problem in Java mit Threads.
Das Programm soll die Türme von Hanoi errechnen, was so nicht schwierig ist, nur habe ich ein Problem damit, die Threads einzubauen. Mein Momentaner versuch sieht so aus:
Java:
import java.util.LinkedList;
public class ParallelHanoi extends Thread {
private int n;
private int source;
private int target;
private int help;
LinkedList<Integer> moves;
public ParallelHanoi(int n, int source, int target, int help,
LinkedList<Integer> moves) {
this.n = n;
this.source = source;
this.help = help;
this.target = target;
this.moves = moves;
}
public void run()
{
if(n >= 1)
{
Thread han1 = new ParallelHanoi(n-1, source, help, target, moves);
han1.start();
moves.add(source * 10 + target);
System.out.println("von " +source+" nach " +target);
Thread han2 = new ParallelHanoi(n-2, help, target, source, moves);
han2.start();
moves.add(help * 10 + source);
try
{
han1.join();
han2.join();
}
catch(InterruptedException e) {e.printStackTrace();}
}
}
public static void main(String[] args)
{
LinkedList<Integer> list = null;
Thread han = new ParallelHanoi(2, 1, 3, 2, list);
han.start();
try {han.join();}
catch (InterruptedException e) {e.printStackTrace();}
}
}
Leider gibt es da Probleme mit der Liste. Kann mir jemand helfen?
Danke schonmal im Vorraus!
P.S: Mir ist bewusst das eine Anwendung von Threads hier nicht sinnvoll ist, ich wollte es nur zur Übung probieren.