# zwei Runnable gleichzeitig



## Gast2 (11. Dez 2012)

Kann man zwei Runnable (handler.postDelayed) gleichzeitig laufen lassen?

Bzw. wie unterscheidet man in der run()-Methode welcher run sich gerade meldet?


----------



## Stroker89 (12. Dez 2012)

Natürlich kann man zwei Threads gleichzeitig laufen lassen.

Unterscheiden kann man in dem in dem man die passenden Messages (Message.what) zu dem Handler des Aufrufenden schickt.

Gruß


----------



## Gast2 (19. Dez 2012)

Leider *verstehe ich nicht*, wie Du das meinst / wie das geht.

Da die Klasse (ein Objekt von) Message bis her gar nicht im Spiel war, kann ich euch keine Methode .what() aufrufen (die es bei Message() auch gar nicht gibt.

Wie ich nun dem Handler-Objekt eine Message mitgeben kann konnte ich nicht herausfinden.

Mein letzter Lösungsansatz war, zwei Handler-Objekte zu erzeugen. 
Beide rufen .postDelayed(this, interval) auf.

Bei beiden endet das in der Methode run().
Nun dachte ich eigentlich, ich könnte herausfinden welcher handler trigert, aber dafür habe ich *leider auch keine Methode gefunden*.


----------



## turtle (19. Dez 2012)

Vielleicht wird es mit einem kleinen Beispiel deutlicher?

```
public class MeinRunnable implements Runnable {
	private final String name;

	public MeinRunnable(String name) {
		this.name = name;
	}

	@Override
	public void run() {
		postDelayed();
	}

	private void postDelayed() {
		System.out.println("postDelayed von " + name);
	}
	public static void main(String[] args) throws InterruptedException {
		MeinRunnable meinRunnable1 = new MeinRunnable("Nummer 1");
		MeinRunnable meinRunnable2 = new MeinRunnable("Nummer 2");
		Thread t1 = new Thread(meinRunnable1);
		Thread t2 = new Thread(meinRunnable2);
		t1.start();
		t2.start();
		Thread.sleep(5000); // Nach 5 Sekunden beenden wir das Programm
	}

}
```


----------

