Go言語の並行処理ライブラリ「coop」

rakyll/coop


goroutineとchannelを使った並行処理をわかりやすく書ける

こんな感じ

3秒後に関数を実行

	// 指定した時刻に関数を実行
	done := coop.At(time.Now().Add(time.Second*3), func() {
		fmt.Println("Hello, world")
	})
        <- done

1分後まで、3秒ごとに関数を実行

	// 指定した時刻まで、指定した期間ごとに関数を実行
	done := coop.Until(time.Now().Add(time.Minute), time.Second*3, func() {
		fmt.Println("Hello world")
	})
        <-done


今日ソースを読んでいたけど、goroutineの書き方の勉強になる。