map读写优化

This commit is contained in:
hahwu 2026-01-07 15:47:02 +08:00
parent 53e1cc8eaa
commit a8f45d221b
2 changed files with 13 additions and 1 deletions

View File

@ -16,7 +16,9 @@ const (
) )
var FuncMap = map[int]func(*Agent, *msg.Msg) error{} // 消息处理函数 var FuncMap = map[int]func(*Agent, *msg.Msg) error{} // 消息处理函数
var funcMapMu sync.RWMutex // FuncMap 的读写锁
var CallbackChan = make(map[string]chan *msg.Msg) // 回调消息队列 var CallbackChan = make(map[string]chan *msg.Msg) // 回调消息队列
var callbackChanMu sync.RWMutex // CallbackChan 的读写锁
var ( var (
server *network.TCPServer // 服务器 server *network.TCPServer // 服务器
Center *network.TCPClient // 集群中心 Center *network.TCPClient // 集群中心

View File

@ -172,7 +172,11 @@ func SendMsgAll(m *msg.Msg) {
func processMsg(a *Agent, m *msg.Msg) error { func processMsg(a *Agent, m *msg.Msg) error {
var err error var err error
if fun, ok := FuncMap[m.Type]; ok { funcMapMu.RLock()
fun, ok := FuncMap[m.Type]
funcMapMu.RUnlock()
if ok {
err = fun(a, m) err = fun(a, m)
} else { } else {
MsgChan <- m //交由game Module消息处理 MsgChan <- m //交由game Module消息处理
@ -181,15 +185,21 @@ func processMsg(a *Agent, m *msg.Msg) error {
} }
func registerFunc(key int, fun func(*Agent, *msg.Msg) error) { func registerFunc(key int, fun func(*Agent, *msg.Msg) error) {
funcMapMu.Lock()
FuncMap[key] = fun FuncMap[key] = fun
funcMapMu.Unlock()
} }
func registerChanel(key string, chanel chan *msg.Msg) { func registerChanel(key string, chanel chan *msg.Msg) {
callbackChanMu.Lock()
CallbackChan[key] = chanel CallbackChan[key] = chanel
callbackChanMu.Unlock()
} }
func unregisterChanel(key string) { func unregisterChanel(key string) {
callbackChanMu.Lock()
delete(CallbackChan, key) delete(CallbackChan, key)
callbackChanMu.Unlock()
} }
func sendGameMsg(m *msg.Msg) { func sendGameMsg(m *msg.Msg) {