Deadlock und Race Condition

Teil 3: Programmieren für die Multi-Core-CPU

Eine Multi-Core-CPU erzielt durch Parallelverarbeitung von Software höhere Leistung. Doch Vorteile bringt die Multi-Core-CPU nur, wenn auch die Software für die CPU optimiert ist und Multithreading ausnutzt. In dieser mehrteiligen Reihe zur Programmierung für die Multi-Core-CPU führt TecChannel Sie nach und nach durch die Besonderheiten der Multi-Core-Programmierung.

Die Leistung von Computersystemen steigt seit Jahren kontinuierlich an. Dies betrifft nahezu alle Komponenten der Rechner. Am deutlichsten ist der Leistungsgewinn bei den Prozessoren, dem Arbeitsspeicher und den Festplatten zu verfolgen. Insbesondere die Prozessoren haben nicht nur dank höherer Taktung sondern vor allem durch die Multi-Core-Technologie massiv an Leistungsfähigkeit zugelegt. Einzelne Anwendungen profitieren aber nur von Multi-Core, wenn sie entsprechend programmiert sind.

In dieser mehrteiligen Reihe zur Programmierung für Multi-Core-Prozessoren führen wir Sie nach und nach durch die Besonderheiten der Multi-Core-Programmierung. Angefangen bei den wichtigsten Grundlagen der verschiedenen Parallelisierungs-Verfahren in Prozessoren im ersten Teil. Der zweite Teil drehte sich um die notwendige Modularisierung in Applikationen und das .Net-Framework. Jetzt geht es ans Eingemachte: Deadlocks, Race Conditions und Zugriffe auf die .Net-Thread-Implementation. Später folgen noch Informationen über Locking, Delegates, Timer und asynchrone Events.

Zu den Herausforderungen bei mehreren parallel laufenden Threads zählen Deadlocks and Race Conditions. Diese müssen durch saubere, vorausschauende Programmierung verhindert werden. Erstere führen zu hängenden Programmen, letztere zu unvorhersehbaren (und selten richtigen) Ergebnissen.