더북(TheBook)

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 채널로 전달한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.