Botschaftenaustausch
摘要
Alle bisher vorgestellten programmiersprachlichen Konstruktionen synchronisieren Prozesse bei ihrem Zugriff auf gemeinsame Variable, setzen also gemeinsamen Speicher voraus. Für verteilte Anwendungen wird aber ein Paradigma benötigt, bei dem Prozesse darauf nicht angewiesen sind: die Kommunikation durch den Austausch von Botschaften. Das Kapitel beginnt mit der Einführung von Kanälen und der Definition des synchronen und asynchronen Botschaftenaustauschs, einfachen Beispielen dazu und eleganten Anwendungen dieser Konzepte: der Konstruktion von Semaphoren, beschränkten Puffern und Netzwerken von Filtern. Danach wird ,,selektives Warten“ vorgestellt, das dem Botschaftenaustausch die Ausdruckskraft aller anderen Synchronisationskonstrukte verleiht und die Einführung des Kunden-Anbieter-Paradigmas ermöglicht. In Go lässt sich auch ,,bewachtes selektives Warten“ realisieren, was sehr zur Übersichtlichkeit von Algorithmen beiträgt. Zu beiden Konzepten folgen wieder viele aus den vorigen Kapiteln bekannte Beispiele. Den Schluss des Kapitels bildet der Beweis der Äquivalenz der Ausdrucksstärke von Semaphorkonzept und Botschaftenaustausch sowie eine konzise Gegenüberstellung der Sprachmittel des Monitorkonzepts und des Kunden-Anbieter-Paradigmas.