首页 > 解决方案 > 如何在 golang 中进行线程安全的预检查

问题描述

type ServiceDM struct {
   ServiceData *XXType
}
func (dm *ServiceDM) A() (*XXType, error) {
     if dm.ServiceData != nil {
       return ServiceDM.ServiceData, nil
     }
    // call some other services to get serviceData
    // do some logic
    ServiceDM.ServiceData = response.ServiceData
    return ServiceDM.ServiceData, nil
}

以上是我在golang中的方法A(),我想如果是并发场景,可能会导致竞态,如何避免呢?感谢你

标签: go

解决方案


推荐阅读