suchmaschinenoptimierung
Logo Sylphen
 
 

Thread-Synchronisation

Synchronisation dient einerseits der Vermeidung von Race Conditions, Abläufe mit ungewissem Ausgang für die Konsistenz von Daten und Korrektheit von Rechenergebnissen. Dabei müssen im Code die kritischen Sektionen geschützt werden, so dass jeweils nur ein Thread in die Ausführung der Sektion gelangt.

Die anderen Threads müssen dann warten, bis der Thread die kritische Sektion verlassen hat und werden vom Laufzeitsystem benachrichtigt.

Manchmal ist es nötig, dass mehrere Threads miteinander synchronisiert werden, um gewisse Abläufe sicherzustellen.

In meinem Beispiel, das direkt aus der Verarbeitung der Gastro-Tipp-Datenupdates kommt, ist es notwendig, dass einige Threads, die als Kinder eines Hauptthreads gestartet werden, nicht mit ihrer Arbeit beginnen, bevor der Hauptthread fertig ist. Es kann nämlich passieren, dass beim Starten der Threads Fehler auftreten. Dann müssen alle bereits gestarteten Threads benachrichtigt werden, dass aus der Sache doch nichts wird. Deshalb muss es ein Synchronisationsobjekt geben, auf das alle warten.

Im angehängten Java-File seht Ihr, wie das implementiert werden kann.
Ich verwende dort synchronized auf eine Singleton-Instanz eines Objekts, auf das sich auch die Kind-Threads synchronisieren. Dadurch können die Kind-Threads erst ihre Arbeit aufnehmen, wenn der synchronized-Bereich im Code des Hauptthread endet. Bis zu dieser Stelle hat der Hauptthread die Möglichkeit - im angedeuteten Fall, dass dort noch etwas schief geht
- die Kindthreads wieder abzubrechen.

Sylphen GmbH & Co. KG

Sylphen ist ein IT-Systemhaus mit Niederlassungen in Gießen, Frankfurt und Hamburg und unterstützt Sie durch Berater und Programmierer bei der effizienten Software-Entwicklung im Bereich Java, SQL und Integration. Unter 0641-94468-0 oder info@sylphen.com beraten wir Sie gerne unverbindlich.
zurück zu Customer-Solutions

  Direct Link -SOA | Blackberry | Suchmaschinenoptimierung | Suchmaschinenmarketing | Prozessmanagement | Media-Asset-Management | Kontencheck | Systemintegration Anwendungsintegration EAI | Sicherheitskonzepte |Bannerdesign |Hosting |Trifa3 | BPEL | Bilddatenbank | Mobile Office | SuMo-Dienstleistungen | Cisco

Oracle
Cisco
google-adwords-professional

Partner Pixelboxx