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

a312024054 · · 2394 次点击
这个问题就是data race的问题,规范里面对`Send statements`的说明是: `Both the channel and the value expression are evaluated before communication begins` 只要在通过同步方式保证`c <- *p`是先于`num++`执行的情况下,从c里面读取到的值一定是10,不管是`c <- *p`还是`c <- num` 如果不能保证`c <- *p`和`num++`的同步,结果就是不确定的,并且考虑`c <- *p`和`c <- num`的结果为什么不同也没多大意义
#18
更多评论
你这个有 data race,结果具有不确定性
#1
<a href="/user/channel" title="@channel">@channel</a> 所以两个的睡眠时间是不一样的呀
#2