Zum Inhalt springen
uencoder

Channel

Ein Kanal ist eine typsichere Nachrichtenwarteschlange für Kommunikation und Synchronisation zwischen Koroutinen/Threads und implementiert das CSP-Nebenläufigkeitsmodell.

Zweck

Nebenläufige Kommunikation durch Message Passing statt Shared Memory erreichen und Race Conditions vermeiden.

Mechanismus

Ein Sender legt Nachrichten in einen Kanal, ein Empfänger entnimmt sie. Kanäle gibt es gepuffert (asynchron) und ungepuffert (synchron). Go-Kanäle sind First-Class-Bürger. select multiplexiert Kanäle. Das Schließen eines Kanals signalisiert allen den Abschluss.

Anwendungsfälle

  • Nebenläufige Kommunikation
  • Go-Programmierung
  • CSP-Modell

Verwandte Begriffe

References