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