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

学的专业是编课 网站开发英语翻译网站建设系统公司

学的专业是编课 网站开发英语翻译,网站建设系统公司,做网站建设优化的公司排名,兰州网站建设ulezhi对goroutine和循环变量处理不当可能是Go开发人员在编写并发应用程序时最常犯的错误之一。让我们看一个具体的例子,然后我们将定义发生此类错误的条件以及如何防止发生这类错误。 在下面的示例中,我们初始化一个切片,然后在作为新goroutine执行的闭包中访问这个元素: s := …

        对goroutine和循环变量处理不当可能是Go开发人员在编写并发应用程序时最常犯的错误之一。让我们看一个具体的例子,然后我们将定义发生此类错误的条件以及如何防止发生这类错误。

        在下面的示例中,我们初始化一个切片,然后在作为新goroutine执行的闭包中访问这个元素:

s := []int{1, 2, 3}for _, i := range s {go func() {fmt.Print(i)}()
}

        我们可能会预期这段代码不以特定的顺序打印123(因为不能保证创建的第一个goroutine会首先执行完成)。这段代码的输出不是确定性的。例始,有时会打印233,有时会打印333。这是什么原因呢?

        在这个例子中,我们从一个闭包创建新的goroutine。提醒一下,闭包是一个函数值,它从其主体外部引用变量:在这里就是变量i。我们必须知道,当一个闭包goroutine被执行时,它不会捕获goroutine创建时的值。而是,所有的goroutine都引用完全相同的变量。当一个goroutine运行时,会在执行fmt.Print时打印i的值。因此,自goroutine启动以来,i 可能已被修改。

        下图显示了代码打印233时可能的执行情况。随着时间的推移,i的值会发生变化:1、2,然后是3。在每次迭代中,我们都会启动一个新的goroutine。因为无法何证每个goroutine何时启动和完成,所以结果也会有所不同。在这个例子中,当i等于2时,第一个goroutine打印i。当i的值已经等于3时,其他gorout

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

相关文章:

  • 网站开发工程师ppt网络推广外包搜索手机蛙软件
  • chrome网站开发插件鞍山便民信息平台
  • 如何网站全部结构番禺网站建设gzhchl
  • 网站开发流程说明小红书官方推广
  • 如何进行网站分析温州网站建设方案表
  • 建设网站西安建筑木工模板承包报价单
  • 网站搜索排名优化人力资源公司网站建设方案
  • 合肥大型网站做小程序的公司有哪些比较好?
  • 科技类网站怎么做ppt模板之家
  • 盐城营销网站建设电子商务网站的建设步骤有
  • 做旅行网站黄骅港金沙滩门票价格
  • 个人做企业网站制作要多少钱个人信息管理系统
  • 自己制作网站需要什么广州做网站信息
  • 手机网站 文件上传北京海淀建设工程律师服务
  • 西部数码的vps云主机如何访问网站爱用建站下载
  • 杭州广众建设工程有限公司网站广告优化
  • dw做网站乱码深圳专业建站公司有哪些
  • wordpress当前页面id深圳做网站优化
  • 昆明网站开发公司电话简历模板 个人简历
  • wordpress首页添加站点统计显示网店装修步骤
  • 网站建设 服务内容 费用百度 门户网站
  • php搭建网站后台wordpress侧边栏加图片
  • 口腔网站设计图手表排行榜
  • 公司年前做网站好处一键生成小程序免费制作平台
  • 毕设做购物网站只做水果的网站
  • 网站开发准备流程图WordPress的网外无法访问
  • 关注济南网站建设如何利用某个软件做一个网站
  • 旅游小镇网站建设方案网站原创页面
  • 许昌住房城乡建设局网站有关大数据的网站及网址
  • 小说网站开发技术实现怀化网络推广哪家服务好