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

网站域名的组成公关公司一般收费标准

网站域名的组成,公关公司一般收费标准,淮南市建设工程质量监督中心网站,深圳南山网站开发代码例子 下面代码的区别是直接调用循环变量,这里使用的就是这个变量的引用,而不是将参数的副本传递给协程执行 for task : range taskChan {wg.Add(1)go func() {defer wg.Done()task.Do() // 使用外部循环变量}() }func DistributeTasks(taskChan &…

代码例子

下面代码的区别是直接调用循环变量,这里使用的就是这个变量的引用,而不是将参数的副本传递给协程执行

for task := range taskChan {wg.Add(1)go func() {defer wg.Done()task.Do()  // 使用外部循环变量}()
}
func DistributeTasks(taskChan <-chan *AddTask, resChan chan int) {var wg sync.WaitGroupfor task := range taskChan {wg.Add(1)go func(t *AddTask) {defer wg.Done()t.Do()}(task) // 注意要当作参数传入,而不是直接在 开启的协程 内部调用task,}wg.Wait()close(resChan)
}

结论

  • 可能导致的问题:
    • 在 Go 语言中,当你使用 go 关键字启动一个 goroutine 时,它会在一个新的并发执行单元中运行。在原始代码中,将 task 作为参数传递给匿名函数,确保了每个 goroutine 操作的 task 是独立的,因为函数参数是按值传递的,这意味着在 go 语句执行时,会将 task 的副本传递给匿名函数。
    • 如果不将 task 作为参数传递,而是直接在匿名协程 goroutine 中调用 task,由于 goroutine 可能会在 for 循环的下一次迭代开始后才开始执行,而 for 循环会不断更新 task 的值,这可能会导致 goroutine 看到的 task 值不是你期望的那个。
    • 例如:goroutine执行时间很长,而程序中开启goroutine是一个很快的过程,开启完毕之后就执行下一次for循环了,循环变量task也就变了,之前开启的goroutine执行到task.Do() 的时候,已经是其他次循环的task变量
for task := range taskChan {wg.Add(1)go func() {defer wg.Done()//假如这里有比较久的耗时操作task.Do()  // 使用外部循环变量,这时候可能已经当时那一次循环的task了,因为开启协程这段代码一下子就执行完毕}()
}
http://www.tj-hxxt.cn/news/35924.html

相关文章:

  • 北京一个公司做网站认证百度广告联盟网站
  • 龙岗平湖网站建设公司关键词排名优化营销推广
  • 卡片式设计的网站全网网络营销推广
  • 创意平面设计公司公司排名沧州seo公司
  • 制作网站复杂吗长沙企业网站建设报价
  • 有没有专做食品批发的网站杭州seo公司
  • 广州一起做网店网站东莞营销网站建设优化
  • wordpress邮件样式美化厦门seo哪家强
  • 淘宝网站开发费用站长统计app软件下载2021
  • 网站建设 关于我们网站联盟广告
  • 平面艺术设计网站怎么优化排名靠前
  • 太原做app网站建设日本今日新闻头条
  • 网站建设宗旨怎么写重庆seo招聘
  • 一站式做网站哪家好谷歌浏览器下载手机版安卓
  • 企业宣传网站怎么做广告外链购买交易平台
  • 做网站销售大概多少钱网络营销的发展概述
  • 如何提网站建设需求全国培训机构排名前十
  • 乔托运智能建站友情链接的作用
  • 阜新网站建设全球十大网站排名
  • sublime做网站常州seo外包公司
  • 做校服的网站淘宝店铺怎么运营
  • 大型电商网站开发成本关键词数据分析工具有哪些
  • 做网站导航栏目怎么做解封后中国死了多少人
  • 如何评判一个网站建设的怎么样宁波网站关键词优化排名
  • 网站建设要点沈阳关键词优化价格
  • 网站推广教学今日头条关键词工具
  • 潮州有没有做网站的人账号权重查询入口站长工具
  • 专做电子产品评测的网站木卢seo教程
  • 游戏网站制作郑州seo关键词排名优化
  • 宁波网站建设哪家公司好苏州seo关键词排名