协程执行问题请教
資深大佬 : davidyanxw 19
package main
import (
“fmt”
“time”
)
var x = 0
func main() {
var num = 123
var p = &num
c := make(chan int)
go func() {
c <- *p + x // 1. 返回 123
// c <- *p // 2. 返回 789
}()
time.Sleep(time.Second)
num = 789
fmt.Println(<-c)
}
子协程,执行 1 返回 123,执行 2 返回 789
没看出来有什么差别啊?
大佬有話說 (10)