Problem mit Threads

GMoN

GMoN

Experte
Threadstarter
Irgendwie verstehe ich das Handling von Threads noch nicht so ganz.

Mit thead.start() starte ich ihn und er wird auch gleich ausgeführt. Wenn alle Anweisung im Thread abgearbeitet wurden, bleibt der thread aber weiter aktiv. Ein späteres thread.start() löst die Exception "Thread already started" aus. Ich kann ihn jetzt aber mit thread.run() nochmal ausführen.

Aber wie kann ich den thread komplett löschen, damit ich ihn beim zweiten Mal wieder mit thread.start() starten kann? Ich möchte nicht, dass der Thread solange mit allen Variablen im Speicher bleibt.

Bei Python haben sich die Threads nach der letzten Anweisung immer selbst gelöscht.
 
S

swordi

Gewerbliches Mitglied
hallo

thread.run() solltest du nicht benutzen.

thread.start() ruft für dich schon intern die run methode auf. das is einfach so

einen thread killen. naja denke mal das object killen und neu anlegen, wenn du wieder völlig von vorne beginnen willst, was aber eventuell auch besser gehen kann.
 
GMoN

GMoN

Experte
Threadstarter
Hmm, .run() ist wirklich Mist, wird dann nämlich nicht als Thread ausgeführt, sondern normal. Kann ich denn folgendes beliebig oft aufrufen, ohne dass da irgendwie Speicher reserviert bleibt?

Code:
Thread t = new exportThread();
t.start();
 
Oben Unten