GoExpertProgramming icon indicating copy to clipboard operation
GoExpertProgramming copied to clipboard

关于第四章2.2节中的疑问

Open soooldier opened this issue 4 years ago • 4 comments

第四章2.2节中提到 alloc为mspan的指针数组,数组大小为class总数的2倍。数组中每个元素代表了一种class类型的span列表 其中数组中的每个元素代表span列表怎么理解呢?我理解是每个元素只能代表一个span

soooldier avatar Sep 27 '20 11:09 soooldier

为什么又关掉了

RainbowMango avatar Sep 27 '20 11:09 RainbowMango

@RainbowMango 哈哈哈之前不太确定,所以先关掉了;晚上回来看了下源码,还是觉得alloc数组中的每个元素只代表一个span呀,不能代表span列表。span里prev和next是指向的是mcentral中noempty list中的元素,而mcentral又是跨goroutine的,所以alloc中的单个span并不会代表一个span列表。不知道这么理解对不对,不对的话还请提点一下

soooldier avatar Sep 27 '20 15:09 soooldier

你先继续往下看,这部分内容做个了解即可。 回头我再看下源码答复你。另外,你看的哪个版本的源码?

RainbowMango avatar Sep 28 '20 01:09 RainbowMango

好的好的,感谢~ 我看的1.14,主要的函数是mcentral.go中的cacheSpan

soooldier avatar Sep 28 '20 02:09 soooldier