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

免费网站流量cp网站建设

免费网站流量,cp网站建设,华夏思源培训机构官网,做网站后台系统的规范第二题#xff1a; 创建一个生产器和接收器#xff0c;再建立一个无缓冲的channel。生产器负责把数据放进管道里#xff0c;接收器负责把管道里面的数据打印出来。这里我们开5个协程把数据打印出来。 直接上代码#xff01; package mainimport (fmt )func …第二题 创建一个生产器和接收器再建立一个无缓冲的channel。生产器负责把数据放进管道里接收器负责把管道里面的数据打印出来。这里我们开5个协程把数据打印出来。 直接上代码 package mainimport (fmt )func receive(c -chan int) {/*for v : range c {fmt.Println(received:, v)}*/for i : 0; i 1; i {go func() {for v : range c {fmt.Println(v)}}()} } func generator() -chan int {c : make(chan int)for i : 0; i 9; i {go func(i int) {for j : 0; j 9; j {temp : i*100 20 jc - temp}close(c)}(i)}return c } func main() {c : generator()receive(c) } 埋了个小坑跑上面的代码在这里是不会有任何输出的。 原因是main函数结束时程序就退出了,没有给goroutine足够运行的时间来打印输出。 整个流程是并发执行的,main函数、generator的goroutine、receive的goroutine都是并发运行。 但是问题是main函数和generator很快就结束了,程序退出,receive的goroutine来不及打印数据。 解决方法就是让main函数等一等receive的goroutine。我们在main函数中加上一句 time.Sleep(time.Second * 5) 这时看到可以顺利输出了。 但是... 但是却panic了。为什么呢 因为generator()把消息发送到了关闭的管道。是因为生成器goroutine和接收goroutine的生命周期没有控制好导致的。 主要原因在于,接收的goroutine一旦从通道接收完所有的数据并退出,通道就会被关闭。 而此时,生成器goroutine可能还在向这个通道发送数据,于是产生了panic。 要避免这种情况,需要确保: 1、接收goroutine在最后一个生成器goroutine退出之前不能退出。 2、生成器goroutine在关闭通道之前,必须保证接收goroutine仍在运行。 问题出在生成器中close(c)这一行。这里每个goroutine都在自己完成后关闭了通道c。 按照程序逻辑,通道c应该在最后一个goroutine完成时关闭一次,而不是每个goroutine都关闭。所以应该只在主goroutine中关闭c。这里我们用WaitGroup来同步。 func generator() -chan int {c : make(chan int) var wg sync.WaitGroupwg.Add(10) // 添加10个goroutinefor i : 0; i 10; i {go func() {// 生成数据 wg.Done() // goroutine结束}()} go func() {wg.Wait() // 等待所有goroutine完成close(c) // 关闭通道,仅关闭一次 }()return c } 顺利输出
http://www.hkea.cn/news/14567787/

相关文章:

  • 为您服务网站电子商务网站建设课程设计
  • ps详情页模板aso优化服务
  • 中国新农村建设促进会网站游戏创业项目
  • 网站pc端和手机端分离怎么做做网站编辑好吗
  • 志鸿优化设计网站seo策划方案案例分析
  • 建设电影网站的关键2016做砸了的小网站
  • 建设工程网站有哪些大学网站策划方案
  • 咨询型网站免费咨询的图片
  • 企业网站定制公司企业网站设计沈阳
  • 官网华为seo公司哪家
  • 资讯网站源码江西省建设厅网站
  • 外贸品牌网站建设企业营销网站建设步骤
  • 屏山县建设招标网站微信开放平台创建移动应用
  • 自己做网站卖产品怎么样购物网站开发的背景与意义
  • 天津 网站 备案广告模板
  • wordpress背景特效唐山seo公司
  • 网站收录检测wordpress主题导购
  • 网站策划是什么网站代运营要多少费用
  • 网站建站建设公司网站加app建设
  • 域名备案网站购买工业互联网平台是什么
  • 玩具网站 下载八百客crm系统登录入口
  • wordpress私密页面湛江网站建设产品优化
  • 建设部职业资格注册中心网站首商网官网
  • 台州网站建设多少钱网站开发获取本地ip
  • 青岛网站做网站多少钱dede做导航网站
  • 南京网站优化推广国网商城
  • 网站主机选择返利网站制作
  • 中国古风网站模板福建网站开发公司电话
  • 旅游网站建设论文专业的外贸行业网站设计
  • 徐州市住房建设局网站首页衡阳seo