Golang balıkları , Bir açıklama istemek.gooroutinin bir önceliği olsun ya da olmasın?
Goroutine bir önceliğe sahip olup?
package main
import (
"fmt"
)
func sum(a []int, c chan int) {
var total int
for _, v := range a {
total += v
}
c <- total
}
func main() {
a := []int{7, 2, 8, -9, 4, 0}
c := make(chan int)
go sum(a[:len(a)/2], c)
go sum(a[len(a)/2:], c)
// x, y := <-c, <-c
x := <-c
y := <-c
fmt.Println(x, y, x+y)
}
nedenle, x, y 17 -5 ilk goroutine bloke değildir?
go sum(a[:len(a)/2], c)
x := <-c
go sum(a[len(a)/2:], c)
y := <-c
eğer bu düzen haklı. Neden your
Teşekkürler, goroutine'nin paralel veya eşzamanlılık olduğunu bilmek istiyorum? – rancongjie
Bu, runtime.GOMAXPROCS'nin nasıl ayarlandığına bağlıdır. İşte iyi bir açıklama: https://www.goinggo.net/2014/01/concurrency-goroutines-and-gomaxprocs.html – tonisuter