当前位置: 首页 > news >正文

建设网站话术网络营销的销售方式

建设网站话术,网络营销的销售方式,简述网站首页制作过程,成都网站建设方案托管高效地处理多个数据源并将其整合为有意义的结果是开发中一项重要的任务。Go 语言,以其强大的并发特性,为我们提供了优雅而高效的解决方案。那么我们探讨一下如何利用 Go 语言的协程,同时调用多个接口获取数据,并将这些数据无缝地合…

高效地处理多个数据源并将其整合为有意义的结果是开发中一项重要的任务。Go 语言,以其强大的并发特性,为我们提供了优雅而高效的解决方案。那么我们探讨一下如何利用 Go 语言的协程,同时调用多个接口获取数据,并将这些数据无缝地合并为一个完整的数据集。

先假定一个场景:现有一需求,需要请求n个接口(暂定为3个)获取接口数据,然后对数据进行二次处理并返回。

按照过往的经验,我们会依次请求接口拿到数据暂存,最后对数据进行包装处理,这种自上而下的处理方式其实并无不妥,现在想要提高下效率,利用牺牲cpu资源来换取查询性能。

  1. 先模拟创建几个接口,分别返回(k1,v1)、(k2,v2)、(k3,v4):

    // 模拟接口A
    func getDataFromA() map[string]interface{} {return map[string]interface{}{"key1": "value1",}
    }// 模拟接口B
    func getDataFromB() map[string]interface{} {return map[string]interface{}{"key2": "value2",}
    }// 模拟接口C
    func getDataFromC() map[string]interface{} {return map[string]interface{}{"key3": "value3",}
    }
    
  2. 开启协程分别请求上述接口:
    首先得思考一个问题,协程执行不保证顺序,请求到的数据应该怎么保存?怎么判断全部协程都执行完毕?怎么拿到全部的数据?

    • 上述接口定义中返回的数据均是 map,那么我完全可以用map来保存数据,所以我定义方法就可以这么定义:

      func getAllData() map[string]interface{} {return nil    // 暂时先不做处理
      }
      
    • 为了防止主协程先于其他执行结束,需要引入 sync.WaitGroup 包控制;所有协程返回的数据,可以用通道来暂存,make 一个容量为 3 的 Channel

      func getAllData() map[string]interface{} {var wg sync.WaitGroupresultChan := make(chan map[string]interface{}, 3)return nil    // 暂时先不做处理
      }
      
    • 接下来就可以开启协程去调用:

      func getAllData() map[string]interface{} {var wg sync.WaitGroupresultChan := make(chan map[string]interface{}, 3)wg.Add(3)go func() {defer wg.Done()resultChan <- getDataFromA()}()go func() {defer wg.Done()resultChan <- getDataFromB()}()go func() {defer wg.Done()resultChan <- getDataFromC()}()wg.Wait()close(resultChan)return nil // 暂时先不做处理
      }
      
    • 最后可以对数据做个简单处理,封装成一个大map返回,实际业务当然按需处理:

      newMap := make(map[string]interface{})for res := range resultChan {for k, v := range res {newMap [k] = v}
      }return newMap
      
  3. 执行验证返回结果:

    func main() {newMap := getAllData()fmt.Println(newMap)
    }
    
    [Running] go run "main.go"
    map[key1:value1 key2:value2 key3:value3]
    

http://www.yayakq.cn/news/102684/

相关文章:

  • 上海网站建设网络推广怎么在现有网站做直播内容
  • 九江的网站建设公司购物网站模板带后台
  • 营销网站建站企业天眼查询个人信息官网
  • 自己建个电影网站可以吗网站开发的阶段流程图
  • 中国十大小说网站排名专做服装的网站
  • 黄山找人做网站益保网做推广网站吗?
  • 芜湖网站建设全包仅需800元24小时最新军事新闻
  • 网上做论文的网站有哪些培训总结
  • 电商模板网站免费电商网站有哪些功能模块
  • 望京网站建设公司商城型网站建设代理加盟
  • 随州网站建设推荐seo优化公司
  • wordpress网站空白网络安全建设方案
  • 男女做暧暧试看网站49秦皇岛做网站多少钱
  • 网站建设方案书的内容整站排名优化品牌
  • 视频医疗平台网站开发wordpress左右
  • 建一个公司网站要多久去掉wordpress标题中竖线
  • 做淘客网站要备案北京工程建设信息交易网
  • 建设个直播网站要多少钱免费行情软件网站下载ww
  • 深圳建站哪家专业网络服务提供者接到通知后
  • 大浪网站建设 优帮云福田公司总部
  • 网站功能模块设计怎么写临沂手机端建站模板
  • 上海网站设计方法什么是优化资源配置
  • 上虞区住房和城乡建设部网站电商网站建设与管理自考试卷
  • 服装网站开发方案swot我自己做个网站怎么做
  • 网站建设先进城市长沙移动网站建设
  • 注册网站备案重庆森林粤语完整版在线观看免费
  • 网站建设备案费用专做五金正品的网站
  • 做网站路由器映射外网杭州高端网页设计
  • 学校网站建设责任书2h1g做视频网站
  • 化工产品网站建设怎么修改网站源文件