Warum einen Zeiger für WaitGroup.Done verwenden, aber nicht für WaitGroup.Add und WaitGroup.Wait?

Susan Sarandon
Freigeben: 2024-11-20 00:28:02
Original
764 Leute haben es durchsucht

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

Zeiger und Variablen in der WaitGroups-Referenz

Im Synchronisierungspaket werden die Funktionen Add, Done und Wait alle von einem Zeiger auf eine WaitGroup aufgerufen:

  • Hinzufügen erhöht den Wartezähler um das angegebene Delta.
  • Fertig dekrementiert den Wartezähler.
  • Warten Sie Blöcke, bis der Wartezähler Null ist.

Im bereitgestellten Codeausschnitt wird die Funktion „Done“ mithilfe einer Zeigervariablen aufgerufen, während die Funktionen „Add“ und „Wait“ mithilfe einer Variablen (kein Zeiger) aufgerufen werden.

Allerdings werden alle drei Funktionen auf demselben WaitGroup-Wert aufgerufen.

  • Die wg-Variable wird als Wert von sync.WaitGroup deklariert, aber die Add Die Methoden , Done und Wait werden für die Adresse von wg (wg) mithilfe des Dereferenzierungsoperators () aufgerufen.
  • Dies bedeutet, dass alle drei Funktionen mit demselben zugrunde liegenden WaitGroup-Wert arbeiten.
  • Der einzige Unterschied besteht darin, dass „Done“ an der Adresse von wg aufgerufen wird, um sicherzustellen, dass der korrekte WaitGroup-Wert geändert wird.

Das obige ist der detaillierte Inhalt vonWarum einen Zeiger für WaitGroup.Done verwenden, aber nicht für WaitGroup.Add und WaitGroup.Wait?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage