我刚刚找到了这个库,它提供了无锁环,它的运行速度比通道快:https : //github.com/textnode/gringo(它的运行速度非常快,尤其是 GOMAXPROCS > 1 )
但有趣的部分是用于管理队列状态的结构:
type Gringo struct {
padding1 [8]uint64
lastCommittedIndex uint64
padding2 [8]uint64
nextFreeIndex uint64
padding3 [8]uint64
readerIndex uint64
padding4 [8]uint64
contents [queueSize]Payload
padding5 [8]uint64
}
如果我删除“paddingX [8]uint64”字段,它的工作速度会慢 20%。怎么可能?
如果有人解释为什么这种无锁算法比通道快得多,甚至是缓冲的,也很感激?
jeck猫
繁星淼淼
相关分类