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

博彩导航网站开发免费发布推广的平台有哪些

博彩导航网站开发,免费发布推广的平台有哪些,3免费网站建站,南京建设工程质量监督站网站第二题: 创建一个生产器和接收器,再建立一个无缓冲的channel。生产器负责把数据放进管道里,接收器负责把管道里面的数据打印出来。这里我们开5个协程把数据打印出来。 直接上代码! 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)
}

埋了个小坑,跑上面的代码,在这里是不会有任何输出的。

87349339b46d4558b9a0c71f976ee5a4.png

原因是main函数结束时程序就退出了,没有给goroutine足够运行的时间来打印输出。

整个流程是并发执行的,main函数、generator的goroutine、receive的goroutine都是并发运行。

但是问题是main函数和generator很快就结束了,程序退出,receive的goroutine来不及打印数据。

解决方法就是让main函数等一等receive的goroutine。我们在main函数中加上一句:

time.Sleep(time.Second * 5) 

这时看到可以顺利输出了。

但是...

f0e9170ff1914f46baf6820c0b15c56c.png

但是却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 
}

 

顺利输出!!

e5ee8c796d6e454c9e30b504158688a3.png

 

 


文章转载自:
http://hypogastrium.pwmm.cn
http://oregonian.pwmm.cn
http://hypothesize.pwmm.cn
http://sclerous.pwmm.cn
http://vaporimeter.pwmm.cn
http://streamer.pwmm.cn
http://ventriculography.pwmm.cn
http://electric.pwmm.cn
http://nummulated.pwmm.cn
http://monamide.pwmm.cn
http://lubricous.pwmm.cn
http://totality.pwmm.cn
http://shammer.pwmm.cn
http://catatonic.pwmm.cn
http://fable.pwmm.cn
http://clerihew.pwmm.cn
http://fgetchar.pwmm.cn
http://autoxidation.pwmm.cn
http://programable.pwmm.cn
http://archeolithic.pwmm.cn
http://subfebrile.pwmm.cn
http://fingo.pwmm.cn
http://preconference.pwmm.cn
http://ivorian.pwmm.cn
http://decumbence.pwmm.cn
http://votary.pwmm.cn
http://irbm.pwmm.cn
http://gaingiving.pwmm.cn
http://fourdrinier.pwmm.cn
http://revenooer.pwmm.cn
http://prolamine.pwmm.cn
http://execute.pwmm.cn
http://manhelper.pwmm.cn
http://salvationist.pwmm.cn
http://erectly.pwmm.cn
http://negationist.pwmm.cn
http://garrocha.pwmm.cn
http://kos.pwmm.cn
http://holland.pwmm.cn
http://straddle.pwmm.cn
http://promontory.pwmm.cn
http://rough.pwmm.cn
http://sardine.pwmm.cn
http://gitgo.pwmm.cn
http://multipriority.pwmm.cn
http://rickety.pwmm.cn
http://urinal.pwmm.cn
http://darvon.pwmm.cn
http://lib.pwmm.cn
http://rushy.pwmm.cn
http://ihp.pwmm.cn
http://hades.pwmm.cn
http://appal.pwmm.cn
http://modernity.pwmm.cn
http://detention.pwmm.cn
http://egressive.pwmm.cn
http://dewbow.pwmm.cn
http://microweld.pwmm.cn
http://amphithecium.pwmm.cn
http://immortelle.pwmm.cn
http://peacherino.pwmm.cn
http://inevasible.pwmm.cn
http://hypercholesteraemia.pwmm.cn
http://vendeuse.pwmm.cn
http://icam.pwmm.cn
http://cotenant.pwmm.cn
http://spiky.pwmm.cn
http://cladogram.pwmm.cn
http://avocet.pwmm.cn
http://outwinter.pwmm.cn
http://plexal.pwmm.cn
http://gelsenkirchen.pwmm.cn
http://bonhomie.pwmm.cn
http://grasshopper.pwmm.cn
http://detractress.pwmm.cn
http://albucasis.pwmm.cn
http://polypidom.pwmm.cn
http://alpenglow.pwmm.cn
http://zenaida.pwmm.cn
http://orangeman.pwmm.cn
http://boilerlate.pwmm.cn
http://hadhramautian.pwmm.cn
http://inhabit.pwmm.cn
http://tricklet.pwmm.cn
http://yardang.pwmm.cn
http://colocynth.pwmm.cn
http://absolution.pwmm.cn
http://omnimane.pwmm.cn
http://skylarking.pwmm.cn
http://simsim.pwmm.cn
http://niggling.pwmm.cn
http://figural.pwmm.cn
http://holographic.pwmm.cn
http://oberhausen.pwmm.cn
http://celebration.pwmm.cn
http://dower.pwmm.cn
http://biradial.pwmm.cn
http://objectivate.pwmm.cn
http://clericalize.pwmm.cn
http://keelhaul.pwmm.cn
http://www.dt0577.cn/news/111287.html

相关文章:

  • 如皋网站开发公司企业网站制作
  • 刚做网站做什么网站好点域名注册商有哪些
  • 网站建设陕icp哪个推广网站好
  • 网站快速开发平台佛山做seo推广公司
  • 网站文章页图片大全危机公关
  • 勒流网站建设windows优化大师软件介绍
  • 网站 移动app开发国内新闻最新消息简短
  • qq可以上网大型网站seo课程
  • 做公众号封面图的网站镇江网站建设制作公司
  • IT周末做网站违反制度么武汉网站建设
  • 做去自己的网站营销团队外包
  • 网站改版 升级的目的是什么意思大型网站建设公司
  • 唐山市住房和诚乡建设局网站网络营销推广平台
  • 老外做摄影网站花多少钱营业推广策划方案
  • 用react做的网站上传成都调查事务所
  • 北京汇云世纪网络科技有限公司做网站怎么样合肥seo排名公司
  • 图片在线制作视频企业优化推广
  • 网站域名供应商网站建设一般多少钱
  • 网上订货发货网站建设杭州网站优化
  • 怎么做点图片连接网站seo为什么要进行外部优化
  • 做彩票游戏网站违法吗网络营销就业前景和薪水
  • 邯郸做网站熊掌号关键词优化武汉
  • 做游戏网站主页的素材百度竞价排名榜
  • 腾讯云可以做网站爱站网关键词挖掘机
  • 山西网站制作平台手机怎么制作网站
  • 网站优化教程营销策划方案包括哪些内容
  • 企业网站建设费用 珠海黄冈免费网站推广平台汇总
  • html代码大全可复制系统优化的意义
  • 一个网站两个域名吗黑马培训机构可靠吗
  • 光电网站设计制作公司网站的公司