疑问 没有缓存的chan在发送阻塞的时候已经把值存进去了还是在读的时候存的

a312024054 · · 2394 次点击
package main import ( "fmt" ) func main() { var num = 10 var p = &num c := make(chan int) c1 := make(chan int) c2 := make(chan int) go func() { for { select { case c <- *p: return case c2 <- <-c1: } } }() c1 <- 1 num++ fmt.Println(<-c) fmt.Println(num) }
#13
更多评论
你这个有 data race,结果具有不确定性
#1
<a href="/user/channel" title="@channel">@channel</a> 所以两个的睡眠时间是不一样的呀
#2