package main
import (
"fmt"
)
var c = make(chan int)
var str string
func ready() {
str = "abc"
fmt.Println("ready1")
<-c //get
fmt.Println("ready2")
}
func main() {
go ready()
c <- 1 //put
fmt.Println(str)
}
ready1
ready2//ready2在abc前 是因为调度,没有必然关系
abc
1.对于非缓冲通道:
“从通道接收数据”的操作 一定会在 “向通道发送数据”的操作完成前发生。
2.对于缓冲通道:
“向通道发送数据”的操作 一定会在 “从通道接收数据”的操作完成前发生。