SharedMap 실행
run() 메서드로 SharedMap을 실행하면 c 채널로 command를 전달받아 해당 액션을 수행한다.
func (sm SharedMap) run() { for cmd := range sm.c { switch cmd.action { case set: sm.m[cmd.key] = cmd.value case get: v, ok := sm.m[cmd.key] cmd.result <- [2]interface{}{v, ok} case remove: delete(sm.m, cmd.key) case count: cmd.result <- len(sm.m) } } }
SharedMap 내부에 있는 맵 m에 액션을 수행하고 결과를 cmd.result 채널로 전달한다.