Mit Threads kann man viele Probleme äußerst elegant lösen und benutzerfreundliche und gleichzeitig robuste Anwendungen schreiben. Threads bringen aber auch zwei neue Arten von Fehlern mit sich - Verklemmungen und Kollisionen beim Zugriff auf gemeinsame Daten. Betrachten Sie Threads einmal als Automobile: Gibt es auf dem Straßennetz Ihres Programmes nur einen einzigen Thread, dann erübrigt es sich, an Kollisionen und Verkehrsstaus zu denken. Je mehr Threads Sie aber zulassen, desto sorgfältiger muß Ihr Programm auf den zu erwartenden Verkehr ausgelegt werden. Überall, wo zwei oder mehr Threads auf gemeinsame Daten zugreifen, ist quasi eine Straßenkreuzung. Dort kann es zu Kollisionen kommen; dort muß der Verkehr geregelt werden. Oft wird ein einfaches Vorfahrtschild ausreichen. Bei mehr Verkehr muß eine Ampel installiert werden. Wenn es sich trotzdem noch staut, dann ist ein Autobahnkreuz nötig. Für solche Berechnungen benutzt man im Straßenbau und in der Informatik das gleiche mathematische Werkzeug - die Warteschlangentheorie. Dieser Artikel zeigt Ihnen praxisorientiert, wie man die gröbsten Fehler beim Entwurf von Programmen mit Multithreading vermeiden und was man tun kann, wenn es doch zu Problemen kommt.
Dr. Klaus Gims