PERSONA 3 THE MOVIE #2
#1 よりだいぶ濃密で面白かった。次も楽しみ。
goroutine を複数起動してどれか一つがエラーになった時の終了する
{ broadCastChan := make(chan struct{}, 1) stopChan := make(chan struct{}, len(workers)) var wg sync.WaitGroup for _, worker := range workers { wg.Add(1) go func(worker *Worker) { defer wg.Done() err := worker.Work(broadCastChan) log.Println(err) stopChan <- struct{}{} }(worker) } <-stopChan close(broadCastChan) wg.Wait() }
stopChan に <- struct{}{} する際に block しないように worker 数を capacity に指定。 stopChan で一つでも受け取ったら broadCastChan を close して worker の中で
{ for { select { case <-broadCastChan: // exit return default: // do something } } }
みたいな感じで待っておいて各 worker を終了。
wg.Wait で全ての worker が終わるまで待つ。
こんな感じかなぁ。
青い花 1-8
- 作者: 志村貴子
- 出版社/メーカー: 太田出版
- 発売日: 2013/10/16
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 志村貴子
- 出版社/メーカー: 太田出版
- 発売日: 2013/10/16
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 志村貴子
- 出版社/メーカー: 太田出版
- 発売日: 2013/10/16
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 志村貴子
- 出版社/メーカー: 太田出版
- 発売日: 2013/10/16
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 志村貴子
- 出版社/メーカー: 太田出版
- 発売日: 2013/10/16
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 志村貴子
- 出版社/メーカー: 太田出版
- 発売日: 2013/10/16
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 志村貴子
- 出版社/メーカー: 太田出版
- 発売日: 2013/10/16
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 志村貴子
- 出版社/メーカー: 太田出版
- 発売日: 2014/04/01
- メディア: Kindle版
- この商品を含むブログを見る
娘の家出 1
- 作者: 志村貴子
- 出版社/メーカー: 集英社
- 発売日: 2014/05/09
- メディア: コミック
- この商品を含むブログ (7件) を見る