-4
私はhttps://blog.golang.org/pipelinesから例を探しています:次のゴルーチンが実行されたら?
func main() {
in := gen(2, 3)
// Distribute the sq work across two goroutines that both read from in.
c1 := sq(in)
// When does this line below execute and what is in `in`?
c2 := sq(in)
// Consume the merged output from c1 and c2.
for n := range merge(c1, c2) {
fmt.Println(n) // 4 then 9, or 9 then 4
}
}
ときc2 := sq(in)
実行していますか?私が理解しているように、それは前の行が終了したときではなく、即座にそれがゴルーチンであるときに実行されます。
はc2
c1
によって受信されたメッセージの後に来た後で、次の着信メッセージを受け取ることができますか?
いいえ、前の行が終了すると実行されます。 'go 'はないので、goroutineではありません。 ( 'gen'関数はゴルーチンを開始するかもしれませんが、それは完全に別々でバックグラウンドで実行されます)。 – psmears