タグ

japaneseとwaitに関するmasterqのブックマーク (1)

  • sync.WaitGroupの正しい使い方 - Qiita

    Goroutineを複数使って並列で処理を行って、それがすべて完了したら次に進みたいとしよう。Goroutineの完了はそれを生成したgoroutineに通知されるわけではないので、メインのgoroutineは何らかのメカニズムを使って全員が完了するまで待って、全員が完了したら実行を再開する必要がある。 sync.WaitGroupは複数のgoroutineの完了を待つための値だ(Javaを知っていれば、java.util.concurrent.CountDownLatchによく似ている)。WaitGroupの値に対してメソッドWaitを呼ぶと、WaitGroupが0になるまでWaitはブロックされる(待たされる)。従って、やりたい処理の数だけWaitGroupの値をインクリメントしておいて、処理完了時にデクリメントすれば、Waitを呼んで処理完了を待っているメインのgoroutineは、

    sync.WaitGroupの正しい使い方 - Qiita
    masterq
    masterq 2020/11/01
    wg.Add(1)とgo funcを一緒にした文法にできなかったのでしょうか。。。
  • 1