type Student struct {
Id string `json:"id"`
Name string `json:"name"`
}
studentList := make([]Student,len(stu))
for i, st := range stu {
go func(st string){
studentList[i], err = getList(st)
if err != nil {
return ... //just example
}
}{st}
}
//and a function like this
func getList(stu string)(res Student, error){
var student Student
err := json.Unmarshal(([]byte)(stu), &student)
if err != nil {
return
}
return &student,nil
}
假设我有stu = [{"id":"001","name":"A"} {"id":"002", "name":"B"}] ,可能更多/ 我想用json.unmarshal解析,但是for循环去调用效率太低,又不想用第三方包。所以想试试并发,GO小白,写的这个返回为空,大佬们帮忙看看
1,for循环效率并不低哈,遍历1个切片和遍历20个切片没啥区别
2,可能是没执行,看看main代码中是不是没阻塞,这个循环里面每个都会开goroutine,主线程退出太快,导致这些routine还没执行就退出了
有什么问题随时提问,如果有帮助欢迎采纳哦