![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang底层剖析
文章平均质量分 83
通过对golang语言中一些常见问题进行底层剖析
篱落~~成殇~~
敲最好的代码,写最美的人生
展开
-
golang深刻剖析——channel
对于无缓冲的 channel,一旦有 goroutine 往 channel 写入数据,那么当前的 goroutine 会被阻塞住,直到有其他的 goroutine 消费了 channel 里的数据,才能继续运行写入数据。当 G2 要读取数据时,会优先从缓冲数据区域去读取,并且在读取完后,会检查 sendq 队列,如果 goroutine 有等待队列,则会将它上面的 data 补充到缓冲数据区域,并且也对其设置 goready 函数。下面我们来捋一下这些不同之处。如果已满,则和之前的流程是一样的。原创 2023-07-31 18:49:06 · 442 阅读 · 0 评论 -
goalng深刻剖析——slice
切片是 Go 中的一种基本的数据结构,使用这种结构可以用来管理数据集合。切片的设计想法来源于动态数组,为了开发者可以更加方便的使一个数据结构可以自动增加和减少。但是切片本身并不是动态数据或者数组指针。切片常见的操作有 reslice、append、copy。与此同时,切片还具有可索引,可迭代的优秀特性。原创 2023-08-03 18:25:44 · 223 阅读 · 0 评论