當前位置:法律諮詢服務網 - 知識產權 - channel原來就是個環形隊列

channel原來就是個環形隊列

golang有壹個很重要的特性就是channel,經常配合goroutine壹起使用。

當然,其中也涉及到有緩沖和無緩沖的情況,為什麽會造成這種情況,我們會在下面解釋。

channel的數據結構不太復雜,就是壹個環形隊列,裏面保存了長度qcount,容量dataqsiz,數據buf,以及前後索引sendx,recvx。

closed用來標識channel的狀態,0表示未關閉,非0表示已關閉,如果關閉,那麽就不能發送數據。

在內部有兩個make函數,壹個是makechan64,壹個是makechan,其實makechan64本質上還是調用的makechan。

初始化的時候可以傳入長度size,然後根據妳初始化數據的類型大小elem.size計算是否有可用空間。

此時,將結構體剩余字段賦值。

就是ch

  • 上一篇:創造太陽能服務青島有限公司怎麽樣?
  • 下一篇:東莞鄭雄電子有限公司怎麽樣
  • copyright 2024法律諮詢服務網