spin:一个 x86(_64) 自旋锁

时间:2024-07-21 03:14:18
【文件属性】:

文件名称:spin:一个 x86(_64) 自旋锁

文件大小:3KB

文件格式:ZIP

更新时间:2024-07-21 03:14:18

Go

旋转 Spin 提供了一个简单的自旋锁。 用法 由于阻塞在自旋锁上的 goroutines 在阻塞时不会完成任何有用的工作(与阻塞在sync.Mutex上的 goroutines 不同,后者会产生可运行的 goroutines),因此自旋锁应该只用于保护非常小的操作。 下面是一个 goroutine-safe 数据结构的例子,它跟踪两个始终以原子方式写入和读取的整数: type Container struct { one int two int lock uint32 } func ( c * Container ) Get () ( one int , two int ) { spin . Lock ( & c . lock ) one , two = c . one , c . two spin . Unlock ( & c . lock ) return }


【文件预览】:
spin-master
----lock_race.go(306B)
----README.md(1003B)
----asm_amd64.s(775B)
----lock.go(1KB)
----asm_386.s(578B)
----lock_test.go(2KB)

网友评论