Immer wenn einen neue Instanz erzeugt/gestartet wird, sollen alle anderen Threads beendet und *freigegeben* werden. Die neue Instanz soll sofort gestartet werden, egal was die anderen Threads noch machen, das das Beenden zeitintensiv sein kann.
Beim Beenden des Programms sollen alle noch laufenden Thread beendet werden und das Programm erst schließen, wenn alle Thread fertig sind.
Wenn ich das richtig sehe, läuft nie mehr als ein Thread, denn sobald einer gestartet wird, sollen die anderen ja beendet werden. Folglich kann zur gleichen Zeit immer nur ein Thread laufen. Es sei denn, der User schafft es schneller zu klicken (einen zweiten Thread zu starten) als vom System Zeit dafür benötigt wird, einen Thread zu starten. Irgendwie passt das alles nicht zusammen, oder ich bin zu kaputt um es zu kapieren