Maison >développement back-end >Golang >Quels sont les avantages du canal Golang

Quels sont les avantages du canal Golang

(*-*)浩
(*-*)浩original
2019-12-03 09:47:033188parcourir

Quels sont les avantages du canal Golang

L'avantage du canal Golang est qu'il évite les mécanismes de verrouillage complexes dans des conditions de course en fournissant des primitives de communication atomiques.

canal

canal est un mécanisme de communication qui permet à une goroutine d'envoyer des valeurs spécifiques à une autre gouroutine. (Apprentissage recommandé : go)

peut être compris comme un conduit pour transmettre un certain type de valeur, et le type transmis dans le canal devient le type d'élément du canal.

Une référence à la structure de données créée à l'aide de make. Lorsque canal est utilisé comme paramètre, il s'agit en fait de la valeur zéro de l'appel

canal passé par référence : nil

Le canal peut être considéré comme une file d'attente FIFO. La lecture et l'écriture dans la file d'attente FIFO sont des opérations atomiques et ne nécessitent pas de verrouillage. Les résultats du comportement de fonctionnement du canal sont résumés comme suit :

Quels sont les avantages du canal Golang

Lors de la lecture d'un canal fermé, vous pouvez toujours lire la valeur zéro du type correspondant. Afin d'obtenir la différence de comportement de lecture des canaux non nuls non nuls en utilisant deux valeurs de réception :

// ok is false when ch is closedv, ok := <-ch

La plupart des types dans Golang sont des types valeur (seuls slice/channel/map sont des types de référence), lisez Types /write Lorsqu'il s'agit d'un canal de type valeur, si la taille de l'élément est relativement grande, des pointeurs doivent être utilisés à la place pour éviter une surcharge fréquente de copie de mémoire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn