Kurz erklärt
Ein Thread ist ein eigenständiger Ausführungspfad innerhalb eines Programms — mehrere Threads können scheinbar oder tatsächlich gleichzeitig laufen und sich dabei Speicher und Ressourcen des Programms teilen.
Genauer
Threads erlauben es z. B., eine rechenintensive Aufgabe im Hintergrund laufen zu lassen, während die Benutzeroberfläche weiter reagiert. Die größte Herausforderung ist, dass mehrere Threads, die gleichzeitig auf dieselben Daten zugreifen, zu Race Conditions führen können (unvorhersehbare Ergebnisse je nach Ausführungsreihenfolge) — dagegen helfen Synchronisationsmechanismen, die den gleichzeitigen Zugriff kontrolliert einschränken.