这是否具有并发访问的线程安全性?

时间:2016-08-15 06:28:12

标签: go concurrency synchronization thread-safety

我的结构count属性需要线程安全访问。

我知道可以使用sync.Mutexsync.RWMutex来完成。但我不确定它是这样的:

type Status struct {
    count uint32

    attr1 string
    attr2 string
}

func (s *Status) Get() uint32 {
    return atomic.LoadUint32(&s.count)
}

func (s *Status) Add(n uint32) {
    atomic.AddUint32(&s.count, n)
}

func (s *Status) Reset(n uint32) {
    atomic.StoreUint32(&s.count, n)
}

谢谢。

修改

我直接认为访问字段s.count不安全。但是atomic.LoadUint32(&s.count)是安全的吗?

0 个答案:

没有答案