# Zweiten Thread erst starten wenn erster Thread beendet ist ?



## Seyda (5. Feb 2008)

Hallo Ihr,

Ich habe 2 Threads laufen wobei der 1. Thread etwas berechnet. Erst wenn diese Berechnung zuende ist sprich der 1. Thread somit auch soll der 2. Thread starten. 

Wie frage ich das mit Java ab und vor allem wo frage ich das ab. Ich denke mal irgendwo muss ich folgends eingeben oder so ähnlich... kann mir jemand helfen bitte? 


```
if(ersterThread.isAlive())
{
    //mache nichts ??
}
else
{
   // starte zweiterThread ??  
}
```

angenommene Klasse wo thread gestartet wird:



```
try
{
   ErsterThread ersterThread = new ErsterThread();
   ersterThread.start(); 

   ZweiterThread zweiterThread = new ZweiterThread();
   zweiterThread.start();	 	             
}
catch(Exception a)
{
a.printStackTrace(); 
}
```



```
public class ErsterThread extends Thread
{
	public ErsterThread()
	{
		
	}
	
    public void run()
    {   
        berechneGraustufenwert();
    }

}
```


```
public class ZweiterThread extends Thread
{
	public ZweiterThread()
	{
		
	}
	
    public void run()
    {   
        holeGraustufenwertBerechneWeiteres();
    }

}
```


----------



## Christian76 (5. Feb 2008)

Hi,

ich würde es mit einem manell ausgelösten Event machen das in dem 1. Thread nach Abschluss der Rechnung erfolgt. In dem Anderen Thread würde ich auf das Event hören und dann starten.

Gruß


----------



## byte (5. Feb 2008)

Executors#newSingleThreadExecutor
Dem übergibst Du nacheinander die zwei Runnables.


Den Sinn der Sache sehe ich aber nicht. Warum rufst Du die Methoden nicht in einem Thread auf, wenn sie eh nicht parallel arbeiten?


----------



## ms (5. Feb 2008)

Schau dir mal die join()-Methode in der Klasse Thread an.
Im Netz gibts auch genug Beispiele dazu.
Allerdings kann ich genauso wie byto keinen Sinn in deinem Fall dafür erkennen.

ms


----------



## Seyda (5. Feb 2008)

byto hat gesagt.:
			
		

> Den Sinn der Sache sehe ich aber nicht. Warum rufst Du die Methoden nicht in einem Thread auf, wenn sie eh nicht parallel arbeiten?


 naja es werden eben in beiden Threads Berechnungen angestellt und daraufhin Daten auf die Platte serialisiert und daher dachte ich ich kapsel das halt in 2 Threads ^^ weil einer erst was macht wenn der andere fertig ist. Wenn halt im erst Thread was schief geht weiß ich das es dort passiert sonst muss ich bei einem Thread eben alles durchsuchen. Was meint ihr?


----------



## byte (5. Feb 2008)

Ich meine, Du solltest erstmal nachlesen, was der Sinn eines Threads ist.


----------



## Seyda (5. Feb 2008)

byto hat gesagt.:
			
		

> Ich meine, Du solltest erstmal nachlesen, was der Sinn eines Threads ist.


 oh ich kenne den Sinn parallel Verarbeitung bla bla


----------

