Java join wirft Exception
-
Hallo ich habe folgendes Problem .
Ich startet einen Thread und warte mit join auf dessen Ende. Aber es wird eine IllegalThreadStateException geworfen kann mir jemand helfen ?while (Queue.size() > 0){ if (thread.isAlive() == false){ thread.setField(Queue.get(0)); System.out.print("T 1 : "); thread.start(); thread.join(); Queue.remove(0); } System.out.println("Anzahl : " + ResultQueue.size() + " " + Queue.size() + " "+ iAnzahl); }
-
Kann es sein, dass der Thread auf irgendeine Art *mehrmals* gestartet wird?
http://forums.sun.com/thread.jspa?threadID=5380406 sieht gut aus:
thread.start() thread.join()
sollte wohlüberlegt sein, du startest einen Thread und wartest bis er fertig ist klingt nämlich stark nach "ich nehme Threads um ohne Threads zu programmieren"
MfG SideWinder
-
Ja das kann sein. Da ich vor der While Schleife das Objekt thread erzeuge.
-
Wie macht man das richtihg
-
Naja, wenn ein Thread einmal deamon ist (das heisst uungefähr, dass er fertig durchlaufen ist), so musst du mit new einen neuen Thread erzeugen.
Findest du bei Google sicher gute erklärungen.
*Edit
Vergiss das mit dem deamon, ist eigentlich was anderes ^^ Erzeuge einfach einen neuen Thread und starte den. In deinem Code wäre das dann soweit ich das gerade sehe thread = new Thread( this ), oder so ähnlich