Goroutine サンプル
Goroutineのサンプルを作ってみる。 まずは、簡単なところから、
package main import "fmt" func f(from string) { for i := 0; i < 3; i++ { fmt.Println(from, ":", i) } } func main() { f("direct") go f("goroutine1") go f("goroutine2") go func(msg string) { fmt.Println(msg) }("randum1") go func(msg string) { fmt.Println(msg) }("randum2") var input string fmt.Scanln(&input) fmt.Println("done") }
実行するごとに結果の順番が変わる。
ここらへんのlogicはどうなっているのだろうか、探っていこう。
$ go run app.go direct : 0 direct : 1 direct : 2 goroutine1 : 0 randum2 goroutine1 : 1 goroutine1 : 2 goroutine2 : 0 goroutine2 : 1 goroutine2 : 2 randum1 done
参考にしたサイト
やっとサーバーの事が書けたな、、