Maison > développement back-end > Golang > Pourquoi utiliser un pointeur pour WaitGroup.Done mais pas pour WaitGroup.Add et WaitGroup.Wait ?

Pourquoi utiliser un pointeur pour WaitGroup.Done mais pas pour WaitGroup.Add et WaitGroup.Wait ?

Susan Sarandon
Libérer: 2024-11-20 00:28:02
original
813 Les gens l'ont consulté

Why Use a Pointer for WaitGroup.Done but Not for WaitGroup.Add and WaitGroup.Wait?

Pointeurs et variables dans la référence des WaitGroups

Dans le package de synchronisation, les fonctions Add, Done et Wait sont toutes appelées par un pointeur vers un WaitGroup :

  • Ajouter incrémente le nombre d'attente du delta donné.
  • Terminé décrémente l'attente count.
  • Attendre les blocs jusqu'à ce que le nombre d'attente soit nul.

Dans l'extrait de code fourni, la fonction Done est appelée à l'aide d'une variable de pointeur, tandis que les fonctions Add et Wait sont appelées en utilisant une variable (pas un pointeur).

Cependant, les trois fonctions sont appelées sur la même valeur WaitGroup value.

  • La variable wg est déclarée comme valeur de sync.WaitGroup, mais l'Add Les méthodes , Done et Wait sont appelées sur l'adresse de wg (wg) à l'aide de l'opérateur de déréférencement ().
  • Cela signifie que les trois fonctions fonctionnent sur la même valeur WaitGroup sous-jacente.
  • La seule différence est que Done est appelé à l'adresse de wg pour garantir que le La valeur correcte de WaitGroup est en cours de modification.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal