# anzahl laufender Threads



## Koravel (11. Apr 2004)

Ich erstelle eine Software die eine gewisse Anzahl an Threads startet.
All diese Threads laufen nur kurzzeitig.

Ich würde mir gerne ausgeben lassen, wenn all diese Threads (die überigends alle Instanzen ein und der selben Klasse sind) beendet sind, hat da jemand eine Idee?
Ich habs schon mit Client-Server auf lokaler Basis versucht, und mit einem Stack und anderem, stoße aber immer auf das Problem, dass ich auf eine Methode oder ähnliches der aufrufenden Klasse zugreifen muss, was sich mir irgendwie verschließt.

Wisst ihr Rat?


----------



## Roar (11. Apr 2004)

schau dir mal die Klasse java.lang.ThreadGroup an, vielleicht hilft sie dir. damit kannst du deine threads einer threadGroup hinzufügen und dann per getActive() oder so du anzahl der aktiven laufenden threads ausgeben lassen...


----------



## Illuvatar (11. Apr 2004)

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ThreadGroup.html#activeCount()

Wenn das 0 ist, sind alle Threads beendet (denke ich mal, habs noch nie verwendet :wink: )


----------



## Koravel (12. Apr 2004)

werd ich mir mal anschauen, danke

[edit]
Falls es jemanden interessiert:

Die Anzahl der Threads, die eure SW gestartet hat bekommt man wie folgt raus:


```
ThreadGroup tg = Thread.currentThread().getThreadGroup();
    System.out.println(tg.activeCount());
```

Man kann dann z.B. in einem Thread (*hüstel*) in einer Endlosschleife diese Zahl überprüfen, und falls sie 2 ergibt (Überpfüfungsthread  + main-thread) sind alle Threads beendet, die gestartet wurden.

Vielleicht hilft es jemanden ausser mir auch noch


----------

