golang 无缓冲 chan
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.对于缓冲通道:
“向通道发送数据”的操作 一定会在 “从通道接收数据”的操作完成前发生。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。