Aller au contenu
uencoder

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

Termes associés

References