这个真的有意思。

作为缓存,本地g队列因为无锁所以应该是越大越好,比方说1<<10或者直接1<<16,这样g多的p关联到的m效率超高。

但是也有问题,本地g队列大了那么存g数量多了,全局g队列里面的g就少了甚至没有,运气不好的p所关联到的m只能去偷,但是偷的效率不高。

这样结局就是多核cpu中有几个核在那空转,这个违背了公平调度的原则。

我们平时把多余的钱存银行或者基金,身上只保留有限的钞票,没钱的人可以去银行或者基金借而不是去偷我的钱,其实我也没钱。如果没有银行那么当我们钱花光了只能自旋等死,为了生存我们只能组队夜里潜入马云家里,谁叫他富的流油。

也可以小一点,比如128、64或更小,这个golang团队会在公平和效率直接做个妥协然后脑门一拍得出个经验值,那行那就256吧。

资本主义追求效率不扯淡上来直接先show me一下your code,社会主义追求公平在写代码之前得先端正一下思想弄清自己的身份至于代码写不写得出来那是次要的。