# Thread neu starten



## MrDude (29. Juni 2006)

Hallo,

ich programmiere eine Art Snake nach und habe folgendes Problem.

Trifft sich dich schlange selber wird die bool Variable auf false gesetzt.
Siehe Code.


Hinzu habe ich eine Funktion reset. Dieses setzt lebt auf true und ruft this.start(); auf.



```
public void run()
	{
		while(lebt)
		{
			try
			{
				Thread.sleep((long)(750/this.geschwindigkeit));
			}
			catch(InterruptedException ie)
			{
				System.out.println("Exception in Schlange/run aufgetreten");
			}	
			this.bewegen();
		}
	}
```
Leider tritt dann folgender Fehler auf:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException
at java.lang.Thread.start(Unknown Source)
at snake.Schlange.reset(Schlange.java:32cool
at snake.Fenster$MyActionListener.actionPerformed(Fenster.java:136)

Und so weiter eben.

Kann mir jemand sagen, wieso ich einen Thread nicht ein zweites mal starten darf oder ob ich etwas ändern muss?!


Vielen Dank im voraus.


TIM smile


----------



## RedWing (29. Juni 2006)

Hallo,

siehe The Life Cycle of a Thread
Wenn die run Methode verlassen wird nimmt der Thread den Zustand "dead" ein,
und aus dem führt keine Transition wieder heraus.

Du musst, afaik dir ein neues Thread Objekt erstellen und dann nochmal start 
aufrufen...

Gruß,

RedWing


----------



## MrDude (29. Juni 2006)

Hi RedWing,

vielen Dank für die präzise Antowort.


TIM smile


----------

