Channel
Un canal est une file de messages typée pour la communication et la synchronisation entre coroutines/threads, implémentant le modèle de concurrence CSP.
Objectif
Réaliser la communication concurrente par passage de messages plutôt que par mémoire partagée, en évitant les courses.
Mécanisme
Un émetteur place des messages dans un canal et un récepteur les retire. Les canaux existent avec tampon (asynchrones) ou sans tampon (synchrones). Les canaux Go sont des citoyens de première classe. select multiplexe les canaux. Fermer un canal diffuse la fin.
Cas d’usage
- Communication concurrente
- Programmation en Go
- Modèle CSP