atomic.Value 泛型

type Value[T any] struct {
    v *T
}

func (v *Value[T]) Load() (val T) {
    pointer := (*unsafe.Pointer)(unsafe.Pointer(&v.v))
    val = *(*T)(atomic.LoadPointer(pointer))
    return
}

func (v *Value[T]) Store(arg T) {
    pointer := (*unsafe.Pointer)(unsafe.Pointer(&v.v))
    for !atomic.CompareAndSwapPointer(pointer, atomic.LoadPointer(pointer), unsafe.Pointer(&arg)) {
    }
}
  • 采用1.18泛型重写atomic.Value 有没有大佬指点一下
謎麟
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!