我刚刚找到了这个提供无锁环的库,它的工作方式比通道快: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
}
Run Code Online (Sandbox Code Playgroud)
如果我删除"paddingX [8] uint64"字段,它的工作速度大约慢20%.它怎么样?
还要感谢有人解释为什么这种无锁算法比通道快得多,甚至缓冲?
Random#rand 和 Kernel#rand 之间真的有区别吗?
据我所知,他们使用不同的“C”函数。