同时从多个goroutine服务请求。这意味着,如果他们读/写相同的变量,则必须同步访问该变量。
接下来,如果要为每个用户使用此数据的不同实例,则可以使用映射,从用户ID或名称映射到数据结构。
假设数据结构是一个结构,例如:
type customData struct { Field1 string Field2 int // Whatever fields you need}每个用户持有一张的地图:
var userDataMap = map[string]customData{}sync.RWMutex从goroutine读取/写入地图时,您可以使用来保护地图:
var mu = &sync.RWMutex{}并使用上述互斥锁同步访问地图:
func Get(user string) customData { mu.RLock() defer mu.RUnlock() return userDataMap[user]}func Set(user string, data customData) { mu.Lock() userDataMap[user] = data mu.Unlock()}另一个更复杂的解决方案是使用服务器端HTTP会话。



