Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Go1.25で追加されたWaitGroup.Goの紹介

 Go1.25で追加されたWaitGroup.Goの紹介

株式会社アドシード主催「水道橋BeerBash」で登壇しました!
そのときに使用したスライドです!

Avatar for ともやん

ともやん

August 29, 2025
Tweet

Other Decks in Programming

Transcript

  1. 名前 平野智也(ひらの ともや) 所属 株式会社アドシード(2023 年11 月〜) バックエンドがメイン Go ・PHP ・Node.js

    etc... 今年6 月からテックブログ運営に参画 趣味 ジム・サウナ・読書・映画鑑賞 etc...
  2. 目次 Go 1.25 Release goroutine とは Go 1.24 までのgoroutine Go

    1.25 からのgoroutine WaitGroup.Go() 導入のメリット まとめ
  3. Go 1.25 Release Go 1.25 Release 2025 年08 月12 日にリリース

    Go は半年に1 回マイナーバージョンがリリースされる ライブラリ・ランタイム・ツールチェーンの追加、変更 今回の注目 testing/synctest パッケージの追加 encoding/json/v2 パッケージの追加 sync パッケージにWaitGroup.Go メソッド実装
  4. sync.WaitGroup 複数のgoroutine の終了を待つ ための仕組み Add メソッド Goroutine カウンタを増やす Done メソッド

    Goroutine カウンタを減らす Wait メソッド カウンタが0 になるまで待つ Go 1.24 までのgoroutine
  5. sync.WaitGroup 複数のgoroutine の終了を待つ ための仕組み Go メソッド 内部でAdd メソッドと     Done

    メソッドを呼ぶ Wait() カウンタが0 になるまで待つ Go 1.25 からのgoroutine
  6. WaitGroup.Go() 導入のメリット Go 1.24 まで Add() やDone() の記述漏れのリスク 思わぬ挙動となってしまう Go

    1.25 から Go() では内部でAdd() やDone() を呼び出している 簡潔かつ安全に想定した挙動を得られる
  7. まとめ goroutine とは Go ランタイムで管理される軽量スレッド 並行処理を実現するための仕組み Go 1.25 からのgoroutine WaitGroup.Go()

    を使う 内部でAdd() とDone() を呼び出している 簡潔かつ安全に想定した挙動を得られる
  8. 出典 Go Packages https://pkg.go.dev/sync#WaitGroup.Go Go 1.25 Release Notes https://tip.golang.org/doc/go1.25#syncpkgsync Future

    Tech Blog https://future-architect.github.io/articles/20250801a/ RitoLabo https://www.ritolab.com/posts/323