2014年12月25日のブックマーク (1件)

  • Go言語で非同期処理の結果を受け取る - Qiita

    Go言語にはgoroutineというものがあり、複数のタスクを並行(Concurrent)に実行したい場合に役立ちます。 またGo言語では、ライブラリなどのAPIは基的に同期版を提供し、非同期で処理したい場合は呼び出し側がgoroutineで非同期化するのが一般的です。 そこで、goroutineを使って関数を呼び出し、その結果を得るための実装方法について、自分なりに考えてみたので、ここにまとめておきます。 戻り値がない 戻り値がなく、処理が終わっていればよい場合: // boolでもよいが空struct done := make(chan struct{}, 0) go func() { // 何か処理をする close(done) }() // chanがcloseされるまでブロックする <-done 値の受け渡しがない場合はシンプルです。 Tips: 空structについて 値の受

    Go言語で非同期処理の結果を受け取る - Qiita
    reiki4040
    reiki4040 2014/12/25
    そうだったのか >"値の受け渡しが不要な場合のchannelには空structがよく使われます。サイズがゼロだからです。"