何时在读取期间保护地图

时间:2016-08-06 14:34:47

标签: go

在我的main函数中,我正在创建一个传递给结构的地图,该地图将仅用于多个处理程序和辅助函数的读取。

我是否需要使用互斥锁保护map[string]interface{}

type SomeStruct struct {
    content map[string]interface{}
}

var ss *SomeStruct

func main() {
    m := map[string]interface{}{"s1": "string", "s2": 1}
    ss = &SomeStruct{m}
    http.HandleFunc("/s1", Handler1)
    http.HandleFunc("/s2", Handler2)
    http.ListenAndServe(":8081", nil)
}

func Handler1(w http.ResponseWriter, r *http.Request) {
    fmt.Println(ss.content["s1"].(string))
}

func Handler2(w http.ResponseWriter, r *http.Request) {
    fmt.Println(ss.content["s2"].(int))
}

我在构建和运行上面的代码时尝试添加-race标志,但没有检测到任何内容。

0 个答案:

没有答案