Willkommen bei c++.de
Unser Tipp
Scrum mit User Stories

Scrum mit User Stories


Hauptmenü
· Startseite

Module
· Forum
· Bücher
· Magazin
· Tutorials
· Weblinks
· Top-Liste
· Kontakt


  
Buchvorstellung

  Bedeutung der Symbole

Themenbereich: Windows, C#, C++

Neuendorf, Olaf

Windows Multithreading mit C++ und C#


Verwandte und/oder ähnliche Titel anzeigen

Mehr Infos zum Titel oder Bestellmöglichkeiten:
Dieses Buch bei amazon.de ansehen!
Dieses Buch bei amazon.at ansehen!

Zur Startseite

Diese Rezension wurde erstellt von c++.de
Eingetragen am: 29.08.2003  Hits: 9154
gut geeignet für:
  • Softwareentwickler unter Windows, die mit C++ Multithreading-Applikationen erstellen
  • Leser, die grundsätzlich noch Probleme mit dem Verständnis von parallelen Programmen und deren Synchronisation haben
  • Softwareentwickler, die für .NET mit C# Multithreading-Applikationen erstellen
  • Auch geeignet für Entwickler, die mit managedC++ oder VB.NET Multithreading unter .NET nutzen
  • Für Praktiker, da sofort einsetzbare Klassen und Tools entwickelt werden, um Aufgaben zu vereinfachen
nicht geeignet für:
  • Wenig geeignet für Leser, die geringe Programmiererfahrung haben, solide Grundkenntnisse sind notwendig, z.B. auch Grundkenntnisse zu Entwurfsmustern oder Templates
  • Leider wenig geeignet für Linux-Nutzer, obwohl das Buch sehr viele Felder abdeckt, sind die praktischen Beispiele wegen der Kopplung an die WinAPI nur schwer nach Linux (bzw. POSIX) portierbar, obwohl der findige Leser sicherlich gute Ideen entdecken kann
Multithreading mit C++ und C#, da erwartet man zunächst einmal nicht viel Gutes. Mein erster Verdacht war, daß hier wild .NET und managedC++ benutzt werden, um .NET-Lösungen zu entwickeln. Dem ist aber überhaupt nicht so. Der Grundaufbau jedes Kapitels sieht so aus, daß zunächst das Problemfeld an einigen Beispielen (vorwiegend mit C++) erklärt wird, danach gibt es zwei getrennte Beispiele, wo jeweils eine Lösung für C++ und eine Lösung für C# vorgestellt wird.

Und wohlgemerkt: wir sprechen von nativem C++ unter der WinAPI, also kein managedC++. Der Schwerpunkt liegt gegenüber C# sogar etwas stärker auf der WinAPI.

Aus dem Inhalt:

  1. Einführung: zunächst eine Erklärung der Begriffe Multithreading und Multitasking, Vorteile und Nachteile, und wie die CPU (bzw. die CPUs) damit fertig werden.
  2. Threads: Stellt die grundsätzlichen Begriffe vor, wie Priorität, Lebensdauer, wie Threads auf CPUs verteilt werden, erklärt auch den Thread Local Storage und dessen Zweck, sowie die Speicherverwaltung und -nutzung in einem Thread.
  3. Anweisungen und Parallelität: Befasst sich mit der Auswirkung von Threading-Operationen auf die Daten, vor allem wie man gleichzeitig Daten verändert. Beschreibt die dazu vorhandenen Funktionen für den Zugriff auf atomare Daten, befasst sich mit dem berühmten "volatile" und wie Reference Counting durch Multithreading beeinflusst wird.
  4. Vom Anfang und vom Ende: Anlagen, Starten und Beenden von Threads und Prozessen - ein relative umfangreiches Kapitel, das mit vielen Beispielen zeigt wie dies programmiert wird.
  5. Thread- und Prozess-Synchronisation: Hat jeder schon gehört, bei Threads müssen Datenzugriffe synchronisiert werden. Stellt die Unterstützung durch CriticalSections und Mutexe vor, wie man Threads warten läßt und wieder freigibt. Enthält außerdem eine sehr beispielhafte Lockingklasse für C++, die Locks auf Datenobjekte verwaltet. Diese Klasse kann dabei zwischen Lese- und Schreibzugriffen unterscheiden, d.h. zwei Lesezugriffe gleichzeitig sperren sich nicht. Alles sehr ausführlich erklärt.
  6. Thread- und Prozess-Kommunikation: Befasst sich mit der Kommunikation, also Datenaustausch zwischen Threads und Prozessen. Stellt die Hilfsmittel in Form von gemeinsamen Speicher, Pipes und Messages vor.
  7. Weitere Bausteine: Threads kennen einige, aber wer kennt Fibers? Geht auch auf Threads innerhalb von DLLs ein.
  8. Paradigmen des Mulithreadings: ein sehr interessantes Kapitel, gerade aus Sicht der Objektorientierung. Der Autor geht hier auf Modellierungsprobleme ein, unter anderem auf die Frage, ob ein Objekt ein Thread sein kann. Weiterhin stellt er einige Entwurfsmuster vor, die rund um Threads hilfreich sein können, ganz im Sinne der Muster-Entwicklung und Policys kreiert er auch Template-Hilfsklassen, die das Locking und Multithreading in Objekten nicht durch Vererbung sondern Templates unterstützten.
  9. Ausnahmebehandlung: geht vor allem auf die Problematik ein, wie man Exceptions über Threadgrenzen hinweg behandelt.
  10. Debugger und Profiler: ein technisches Kapitel, das am Beispiel vom Visual Studio zusätzliche Möglichkeiten des Debuggers zeigt, wenn man mehr als einen Thread debuggen will.
Einige Hilfsklassen im Anhang, sowie eine Übersicht aller API-Funktionen rund um die Threads runden das Buch ab.

Das Buch ist aus zwei Gründen lesenswert:
1) Es stellt die komplexe Thematik der Threads gut geordnet vor und befasst sich nicht nur mit der Technik, sondern auch mit den Problemen und Lösungsmöglichkeiten.
2) Lösungsvorschläge sind kein "pretty old C style" sondern echte - in UML dokumentierte - Lösungen für C++, die auf den jüngsten Ideen aus dem Bereich der Entwurfsmuster, Templates und Policys basieren.

Daher ein Muß für jeden Applikationsentwickler, der sich mit Multithreading befasst.

Homepage des Buchtitels
Inhaltsverzeichnis
Probekapitel von der Verlagshomepage

Diese Daten stammen aus der Datenbank von Amazon.de
Amazon-Verkaufsrang:1402917
Seiten:430
ISBN-10:3-8266-0989-1
ISBN-13:978-3-8266-0989-3
Verlag:Mitp-Verlag
Preis:
Preis gebraucht (ab):EUR 23,99

Mehr Infos zum Titel oder Bestellmöglichkeiten:
Dieses Buch bei amazon.de ansehen!
Dieses Buch bei amazon.at ansehen!

Zur Startseite

Bedeutung der Symbole:
Einsteiger= für Einsteiger geeignet
Medium= für alle, die "mittendrin" stehen
Profi= für Fortgeschrittene geeignet
Zurück zum Seitenanfang

Logo-Design: MastaMind Webdesign

Allgemeine Nutzungsbedingungen | Datenschutzhinweis