當然,其中也涉及到有緩沖和無緩沖的情況,為什麽會造成這種情況,我們會在下面解釋。
channel的數據結構不太復雜,就是壹個環形隊列,裏面保存了長度qcount,容量dataqsiz,數據buf,以及前後索引sendx,recvx。
closed用來標識channel的狀態,0表示未關閉,非0表示已關閉,如果關閉,那麽就不能發送數據。
在內部有兩個make函數,壹個是makechan64,壹個是makechan,其實makechan64本質上還是調用的makechan。
初始化的時候可以傳入長度size,然後根據妳初始化數據的類型大小elem.size計算是否有可用空間。
此時,將結構體剩余字段賦值。
就是ch