# ständig neue Threads



## Seppel (31. Jul 2016)

Hallo,

ich habe bei einem Spiel ein Problem. Es enstehen ständig neue Threads, was ich über die Hauptschleife ausgeben lasse.
Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
Thread[] threadArray = threadSet.toArray(new Thread[threadSet.size()]);
pr("threadArray#############"+threadArray.length,debugThreadStack);​ 

Alle Stellen, wo ich aktiv und bewusst Threads starte:
new Thread​habe ich ausschließen können.

Eine Fehlerstelle fand ich bereits. Für die Ausgabe von Sound nutze ich "Clip". Dieses startet jedes Mal einen neuen Thread, der nie beendet wird. Welche besseren Möglichkeiten gibt es hierfür?

Wie kann ich weitere Stellen finden, wo Threads erzeugt werden?

Viele Grüße


----------



## DrZoidberg (31. Jul 2016)

Du könntest einen eigenen SecurityManager schreiben, der das Erstellen von neuen Threads verbietet. Dann bekommst du eine Exception, die dir verraten sollte wo genau ein neuer Thread erstellt wird.
Hier ist eine genauere Erklärung dazu:
http://stackoverflow.com/questions/...-forbid-neither-creating-new-thread-nor-start


----------



## Flown (1. Aug 2016)

Wenn du einen Clip hast, dann kannst du ihn in einem try-resource werfen, dann wird das auch wieder geschlossen und nehme an der Thread auch beendet.


----------



## Seppel (1. Aug 2016)

Hallo,
ich konnte inzwischen die Problemstellen ausmachen. Es sind ausschließlich die Stellen, wo ein neuer Track oder Sound gestartet wird. Der Start ist von einem try catch umklammert (bin mir aber nicht ganz sicher, ob du das wirklich meinst).

Ich muss also nur eine andere Möglichkeit finden dynamisch viele Sounds abspielen lassen zu können.
Viele Grüße


----------



## Flown (1. Aug 2016)

Try-resource ist HIER erklärt.


----------

