首頁 > 後端開發 > Golang > 主體

為什麼對 WaitGroup.Done 使用指針,而不對 WaitGroup.Add 和 WaitGroup.Wait 使用指針?

Susan Sarandon
發布: 2024-11-20 00:28:02
原創
774 人瀏覽過

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

WaitGroups 參考中的指標和變數

在sync 套件中,函數Add、Done 和Wait 都是透過指向WaitGroup 的指標來呼叫的:

  • Add 將等待計數增加給定的增量。
  • 完成遞減等待計數。
  • Wait 阻塞,直到等待計數為零。

在提供的程式碼片段中,使用指標變數呼叫 Done 函數,而 Add 和 Wait使用變數(而不是指標)呼叫函數。

但是,所有三個函數都在同一個WaitGroup 上呼叫value.

  • wg 變數被宣告為sync.WaitGroup 的值,但Add解引用運算子在wg (wg) 的位址上呼叫、Done 和Wait方法()。
  • 這表示所有三個函數都在同一個底層 WaitGroup 值上進行操作。
  • 唯一的差異是在 wg 的位址上呼叫 Done 以確保正在修改正確的 WaitGroup 值。

以上是為什麼對 WaitGroup.Done 使用指針,而不對 WaitGroup.Add 和 WaitGroup.Wait 使用指針?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板