eigener Thread will nicht so wie ich

I

Ironmantiger

Ich muss für Info (Schule) ein Speil programmieren, habe mich also für Scrabble entschieden.
Es geht auch alles wunderbar nur die KI macht probleme. Da diese etwas langsam ist (20sek pro durchlauf) wollte ich sie in einem eigenem thread laufen lassen...

nur das geht irgendwie nicht

hier mein aufruf der KI
Java:
 ki = new KI(fields,lines,rows,Dict,Systemletters,0);
ki.start();
ki.run();

und hier die kurzform meiner KI klasse

package scrabble;

import Thesaurus.*;
import java.util.ArrayList;

/**
 *
 * @author André
 */
public class KI implements Runnable{
    //[vars]
   private Thread t;
    public KI(String[][]f,int l, int r,OpenThesaurus d,String[] w,int s){
        felder = new String[l][r];
        lines = l;
        rows = r;
        felder = f;
        dict = d;
        letters = w;
        strength = s;
        sf = new StringFind();
    }

    //funktionen [...]
    
    public void start() {
        t = new Thread(this);
        t.start();

    }
    public void stop() {
        t.stop();
        t = null;
    }
    
   @Override public void run() {
        //run
   }
}
ich hpffe ihr könnt mir helfen

mfg
 
Hallo,

für das nächste mal wäre es gut, wenn du die code-Tags nutzt. das macht den Post übersichtlicher.

nur das geht irgendwie nicht
Das ist keine richtige Fehlermeldung. Das nächste mal beschreibe bitte das Fehlverhalten. So fällt es Leuten, die helfen möchten, leichter den Fehler zu finden.

Nun zu deinem Problem.
Wenn du die Start-Methode aufrufst, brauchst du nicht mehr die run-Methode aufzurufen. Die start-Methode startet den Thread und führt die run-Methode aus. Wenn du die Run-Methode selbst aufrufst, wartet der Aufrufer bis die Methode fertig abgearbeitet ist, dann brauchst du auch keinen Thread.
Code:
ki.start();
ki.run();


Gruß

Sascha
 
vielen dank, sasch so geht es...
und das mit den code tags kenn ich nicht, mir sind (da dies ein gast zugang ist) auch keinerlei formatierungsmöglichkeiten gegeben, wesshalb ich sie auch nicht kenne.

und eine Fehlermeldung gab es auch nicht da ja kein fehler im eigentlichen sinn entstand... das einzige war, dank dir jetzt nicht mehr, dass er sich in der run() aufgehongen hat

mfg
 
Es muss ja keine Fehlermeldung kommen, es ist ja schon mal ein Anfang, wenn du beschreibst, was das Fehlverhalten ist.

Gruß

Sascha
 
Zurück