【发布时间】:2015-09-18 18:10:14
【问题描述】:
为了保存 Gorilla websocket 连接,我可以这样做,其中键可能是 userId。
connections := make(map[int]*connection)
我正在使用一个叫做 supervisord 的东西
这是一个过程控制系统,因此我能够运行 go 应用程序 在后台作为守护进程。似乎正在生成多个实例。
如果我将其设为全局变量,这些实例是否知道如何访问相同的连接变量?
var connections map[int]*connection
还是会有问题?
此外,由于 map 不是线程安全的,我是否应该创建一个结构并添加 sync.RWMutex 并在检查密钥是否存在或从其中删除密钥之前执行 RLock()/Lock() 和 RUnlock()/Unlock()地图?
【问题讨论】:
标签: go