タグ

2017年5月6日のブックマーク (2件)

  • pipeline and cancellation並行性パターンの勉強 - すぎゃーんメモ

    Go Concurrency Patterns: Pipelines and cancellation - The Go Blog を読んでいて、なかなか理解するまで苦しんだので復習がてら自分でもコードを書いて確かめてみた。 お題 複数の入力データそれぞれに対して重い処理を行い、結果として返ってくる値をまとめて取得する。 途中でエラーが発生したら直ちに処理を中止して終了する。 コード いちばん簡単な例 エラーを考慮しない場合。 package main import ( "fmt" "log" "math/rand" "time" ) func init() { log.SetFlags(log.Lmicroseconds) rand.Seed(time.Now().UnixNano()) } func doSomething(id int) string { wait := rand.I

    pipeline and cancellation並行性パターンの勉強 - すぎゃーんメモ
  • Go1.7のcontextパッケージ

    Go1.7ではgolang.org/x/net/contextがcontextパッケージとして標準パッケージに仲間入りする.そしていくつかの標準パッケージではcontextパッケージを使ったメソッド/関数も新たに登場する.contextパッケージは今後さらに重要な,Gopherは普通に扱うべき,パッケージになると考えられる.記事ではそもそもcontextパッケージとは何か?なぜ登場したのか?なぜ重要なのか?どのように使うべきか?についてまとめる. contextパッケージが初めて紹介されたのは2014年のThe Go Blogの記事 “Go Concurrency Patterns: Context”である.この記事ではなぜGoogleがcontextパッケージを開発したのか,どのように使うのか具体的な検索タスクを例に解説されている.まだ読んだことがない人はそちらを先に読むと良い. co