join aber haißt doch "beitreten, verbinden" -
am Schluss will ich ihn aber doch beenden (gerade wenn er sich aufgehängt hat), wieso dann "join" - mir ist das Konzept hinter join noch nicht klar....
Um deinen Thread "normal" zu beenden benötigst du eine "Möglichkeit" die Schleife zu beenden. Dafür gibt es sehr viele Lösungen, aber der Join bezieht sich in erster Linie darauf dass du deinen aktuellen Thread Kontext (von dem aus du den anderen beenden möchtest) mit dem Kontext deines laufenden Thread synchronisierst um dann zum beispiel eine "running" Variable auf false zu setzen.

Ist dir verständlich warum man Threads beim Datenaustausch synchronisieren muss oder nicht? (das müsste man vieleicht etwas ausführlicher Erklären, da sich daraus ergibt warum man manchmal joinen muss)