新生困惑,slices和chan

zxmin · · 1322 次点击
你还是没理解go协程之间的通信问题,以及go核心的并发编程原理。如果可以,你可以留个联系方式,我给你说说这一块
#6
更多评论
polaris
社区,需要你我一同完善!
两个完全不一样的东西,有一个表现类似,你不能就说它们是一样的。 就简单一个问题:chan 取走值后,可以继续往里面写,slice 可以吗?slice 是取走吗?
#1
首先第一点你要先明白,slice和chan并不是同样的东西。 slice是一个可变长度的数组,数组是一个容器,是用来存储数据用的。 chan是管道,管道并不是存储数据用的,管道是为了grounite之间通信用的。 chan分为缓存chan,和非缓存chan,你上面定义的是缓存chan所以表面上看起来你可以往里存数据而不会造成阻塞, 你如果定义一个非缓存chan你就会明白,如果往非缓存chan存数据而不立马取出就会立马阻塞。
#2