go 1.9 多安全執行緒MAP 函數模組
來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。```package main//go 1.9 多安全執行緒MAP 函數模組//QQ:29295842 歡迎技術交流import (//"fmt""sync")var (map_list sync.Map //廣告配置資訊wgx sync.WaitGroup //)func Thread_map_add(id string, rows_map map[string]interface{}) { //添加資料map_list.Store(id, rows_map)}func Thread_map_revise(id string, rows_map map[string]interface{}) { //修改wgx.Add(1) //線程數go func() {map_list.LoadOrStore(id, rows_map) //修改wgx.Done()}()wgx.Wait() //等待}func Thread_map_delete(id string) { //刪除wgx.Add(1) //線程數go func() {map_list.Delete(id) //刪除wgx.Done()}()wgx.Wait() //等待}func Thread_map_read(id string) (bool, string, map[string]interface{}) { //讀取read_bool := falsevalue := make(map[string]interface{})value2, err := map_list.Load(id) //key讀取if err {if valuexa, ok := value2.(map[string]interface{}); ok {value = valuexaread_bool = true}}//fmt.Print("===%v==%v==\n", data, err)//遍曆讀取//map_list.Range(func(key, value2 interface{}) bool { //讀取資料//fmt.Println(key, "-----------", value2)////if valuexa, ok := value2.(map[string]interface{}); ok {////read_bool = true//////key = fmt.Sprintf("%v", key)////value = valuexa////}//return true//})return read_bool, id, value}//fmt.Println("----------------")//rows_map := make(map[string]interface{})//rows_map["db_name"] = "098765"//rows_map["list"] = "1234567"//map_add("abc", rows_map)//rows_map = make(map[string]interface{})//rows_map["db_name"] = "aaaaaa"//rows_map["list"] = "bbbbbbb"////map_add("123", rows_map)//map_revise("abc", rows_map)//rows_map3 := make(map[string]interface{})//rows_map3["db_name"] = "rrrrr"//rows_map3["list"] = "eeeeeee"//map_add("1234", rows_map3)//read_bool, key, re_map := map_read("abc")//fmt.Printf("==%v==%v==%v==\n", read_bool, key, re_map["db_name"])```752 次點擊